albacore 0.0.9 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. data/README.markdown +84 -81
  2. data/VERSION +1 -1
  3. data/install_dependencies.rb +10 -10
  4. data/lib/albacore.rb +10 -2
  5. data/lib/albacore/assemblyinfo.rb +100 -100
  6. data/lib/albacore/assemblyinfolanguages/csharpengine.rb +14 -0
  7. data/lib/albacore/assemblyinfolanguages/vbnetengine.rb +14 -0
  8. data/lib/albacore/docu.rb +39 -0
  9. data/lib/albacore/exec.rb +23 -0
  10. data/lib/albacore/expandtemplates.rb +73 -71
  11. data/lib/albacore/msbuild.rb +56 -61
  12. data/lib/albacore/mspectestrunner.rb +44 -42
  13. data/lib/albacore/nant.rb +39 -0
  14. data/lib/albacore/ncoverconsole.rb +68 -61
  15. data/lib/albacore/ncoverreport.rb +56 -55
  16. data/lib/albacore/ncoverreports/assemblyfilter.rb +7 -7
  17. data/lib/albacore/ncoverreports/branchcoverage.rb +7 -7
  18. data/lib/albacore/ncoverreports/classfilter.rb +5 -5
  19. data/lib/albacore/ncoverreports/codecoveragebase.rb +22 -22
  20. data/lib/albacore/ncoverreports/cyclomaticcomplexity.rb +19 -19
  21. data/lib/albacore/ncoverreports/documentfilter.rb +5 -5
  22. data/lib/albacore/ncoverreports/fullcoveragereport.rb +17 -17
  23. data/lib/albacore/ncoverreports/methodcoverage.rb +7 -7
  24. data/lib/albacore/ncoverreports/methodfilter.rb +5 -5
  25. data/lib/albacore/ncoverreports/namespacefilter.rb +5 -5
  26. data/lib/albacore/ncoverreports/reportfilterbase.rb +23 -23
  27. data/lib/albacore/ncoverreports/summaryreport.rb +18 -18
  28. data/lib/albacore/ncoverreports/symbolcoverage.rb +6 -7
  29. data/lib/albacore/ndepend.rb +35 -0
  30. data/lib/albacore/nunittestrunner.rb +36 -35
  31. data/lib/albacore/plink.rb +48 -0
  32. data/lib/albacore/sftp.rb +33 -31
  33. data/lib/albacore/sqlcmd.rb +54 -51
  34. data/lib/albacore/ssh.rb +35 -33
  35. data/lib/albacore/support/albacore_helper.rb +1 -4
  36. data/lib/albacore/support/attrmethods.rb +25 -0
  37. data/lib/albacore/support/failure.rb +17 -17
  38. data/lib/albacore/support/globalconfig.rb +6 -0
  39. data/lib/albacore/support/logging.rb +30 -28
  40. data/lib/albacore/support/runcommand.rb +41 -41
  41. data/lib/albacore/support/yamlconfig.rb +23 -27
  42. data/lib/albacore/unzip.rb +28 -0
  43. data/lib/albacore/xbuild.rb +54 -0
  44. data/lib/albacore/xunittestrunner.rb +40 -43
  45. data/lib/albacore/zipdirectory.rb +72 -63
  46. data/lib/rake/assemblyinfotask.rb +12 -11
  47. data/lib/rake/docutask.rb +17 -0
  48. data/lib/rake/exectask.rb +18 -0
  49. data/lib/rake/expandtemplatestask.rb +12 -11
  50. data/lib/rake/msbuildtask.rb +13 -12
  51. data/lib/rake/mspectask.rb +12 -11
  52. data/lib/rake/nanttask.rb +17 -0
  53. data/lib/rake/ncoverconsoletask.rb +12 -11
  54. data/lib/rake/ncoverreporttask.rb +12 -11
  55. data/lib/rake/ndependtask.rb +23 -0
  56. data/lib/rake/nunittask.rb +12 -11
  57. data/lib/rake/plinktask.rb +23 -0
  58. data/lib/rake/renametask.rb +15 -15
  59. data/lib/rake/sftptask.rb +11 -10
  60. data/lib/rake/sqlcmdtask.rb +13 -12
  61. data/lib/rake/sshtask.rb +11 -10
  62. data/lib/rake/support/albacoretask.rb +16 -15
  63. data/lib/rake/unziptask.rb +17 -0
  64. data/lib/rake/xbuildtask.rb +22 -0
  65. data/lib/rake/xunittask.rb +12 -11
  66. data/lib/rake/ziptask.rb +12 -11
  67. data/rakefile.rb +255 -204
  68. data/spec/assemblyinfo_spec.rb +426 -221
  69. data/spec/assemblyinfotask_spec.rb +21 -21
  70. data/spec/docu_spec.rb +70 -0
  71. data/spec/docutask_spec.rb +39 -0
  72. data/spec/exec_spec.rb +23 -0
  73. data/spec/exectask_spec.rb +31 -0
  74. data/spec/expandtemplates_spec.rb +149 -148
  75. data/spec/expandtemplatestask_spec.rb +21 -21
  76. data/spec/msbuild_spec.rb +150 -139
  77. data/spec/msbuildtask_spec.rb +21 -21
  78. data/spec/mspectask_spec.rb +21 -21
  79. data/spec/nant_spec.rb +101 -0
  80. data/spec/nanttask_spec.rb +31 -0
  81. data/spec/ncoverconsole_spec.rb +253 -221
  82. data/spec/ncoverconsoletask_spec.rb +21 -21
  83. data/spec/ncoverreport_spec.rb +538 -523
  84. data/spec/ncoverreporttask_spec.rb +21 -21
  85. data/spec/ndepend_spec.rb +49 -0
  86. data/spec/{commandtask_spec.rb → ndependtask_spec.rb} +10 -10
  87. data/spec/nunittask_spec.rb +21 -21
  88. data/spec/nunittestrunner_spec.rb +6 -6
  89. data/spec/patches/docu_patch.rb +13 -0
  90. data/spec/patches/system_patch.rb +18 -18
  91. data/spec/patches/tasklib_patch.rb +10 -10
  92. data/spec/plink_spec.rb +61 -0
  93. data/spec/plinktask_spec.rb +31 -0
  94. data/spec/renametask_spec.rb +21 -21
  95. data/spec/sftp_spec.rb +24 -24
  96. data/spec/sftptask_spec.rb +31 -31
  97. data/spec/sqlcmd_spec.rb +118 -120
  98. data/spec/sqlcmdtask_spec.rb +21 -21
  99. data/spec/ssh_spec.rb +36 -37
  100. data/spec/sshtask_spec.rb +29 -29
  101. data/spec/support/TestSolution/NDependProject.xml +315 -0
  102. data/spec/support/TestSolution/TestSolution.XUnitTests/Class1.cs +12 -12
  103. data/spec/support/TestSolution/TestSolution.XUnitTests/FailingTestFixture.cs +14 -0
  104. data/spec/support/TestSolution/TestSolution.XUnitTests/TestSolution.XUnitTests.csproj +1 -0
  105. data/spec/support/TestSolution/TestSolution.build +25 -0
  106. data/spec/support/assemblyinfotester.rb +40 -38
  107. data/spec/support/expandtemplatestestdata.rb +73 -73
  108. data/spec/support/msbuildtestdata.rb +28 -28
  109. data/spec/support/nanttestdata.rb +33 -0
  110. data/spec/support/ncoverconsoletestdata.rb +18 -0
  111. data/spec/support/ncoverreporttestdata.rb +24 -24
  112. data/spec/support/spec_helper.rb +2 -1
  113. data/spec/support/yamlconfig/msbuild.yml +3 -0
  114. data/spec/support/yamlconfig/yaml_autoconfig_test.yml +1 -0
  115. data/spec/support/ziptestdata.rb +11 -6
  116. data/spec/xunit_spec.rb +63 -0
  117. data/spec/xunittask_spec.rb +19 -19
  118. data/spec/yamlconfig_spec.rb +38 -52
  119. data/spec/zip_spec.rb +56 -11
  120. data/spec/ziptask_spec.rb +22 -22
  121. metadata +53 -8
  122. data/lib/albacore/command.rb +0 -23
  123. data/lib/rake/commandtask.rb +0 -16
  124. data/spec/command_spec.rb +0 -23
@@ -4,28 +4,28 @@ require 'rake/expandtemplatestask'
4
4
  require 'tasklib_patch'
5
5
 
6
6
  describe Albacore::ExpandTemplatesTask, "when running" do
7
- before :each do
8
- task = Albacore::ExpandTemplatesTask.new(:expandtemplates) do |t|
9
- @yielded_object = t
10
- end
11
- task.extend(TasklibPatch)
12
- Rake::Task[:expandtemplates].invoke
13
- end
14
-
15
- it "should yield the expand template api" do
16
- @yielded_object.kind_of?(ExpandTemplates).should == true
17
- end
7
+ before :each do
8
+ task = Albacore::ExpandTemplatesTask.new(:expandtemplates) do |t|
9
+ @yielded_object = t
10
+ end
11
+ task.extend(TasklibPatch)
12
+ Rake::Task[:expandtemplates].invoke
13
+ end
14
+
15
+ it "should yield the expand template api" do
16
+ @yielded_object.kind_of?(ExpandTemplates).should == true
17
+ end
18
18
  end
19
19
 
20
20
  describe Albacore::ExpandTemplatesTask, "when execution fails" do
21
- before :each do
22
- @task = Albacore::ExpandTemplatesTask.new(:failingtask)
23
- @task.extend(TasklibPatch)
24
- @task.fail
25
- Rake::Task["failingtask"].invoke
26
- end
27
-
28
- it "should fail the rake task" do
29
- @task.task_failed.should be_true
30
- end
21
+ before :each do
22
+ @task = Albacore::ExpandTemplatesTask.new(:failingtask)
23
+ @task.extend(TasklibPatch)
24
+ @task.fail
25
+ Rake::Task["failingtask"].invoke
26
+ end
27
+
28
+ it "should fail the rake task" do
29
+ @task.task_failed.should be_true
30
+ end
31
31
  end
@@ -2,172 +2,183 @@ require File.join(File.dirname(__FILE__), 'support', 'spec_helper')
2
2
  require 'albacore/msbuild'
3
3
  require 'msbuildtestdata'
4
4
 
5
- describe MSBuild, "when building a solution with verbose logging turned on" do
6
- before :all do
7
- @testdata = MSBuildTestData.new
8
- msbuild = @testdata.msbuild
9
- strio = StringIO.new
10
- msbuild.log_device = strio
11
- msbuild.log_level = :verbose
12
-
13
- msbuild.solution = @testdata.solution_path
14
- msbuild.build
15
-
16
- @log_data = strio.string
17
- end
18
-
19
- it "should log the msbuild command line being called" do
20
- @log_data.should include("Executing MSBuild: \"C:\\Windows/Microsoft.NET/Framework/v3.5/MSBuild.exe\"")
21
- end
5
+ shared_examples_for "prepping msbuild" do
6
+ before :all do
7
+ @testdata = MSBuildTestData.new
8
+ @msbuild = @testdata.msbuild
9
+ @strio = StringIO.new
10
+ @msbuild.log_device = @strio
11
+ @msbuild.log_level = :verbose
12
+ end
13
+ end
14
+
15
+ describe MSBuild, "when building a solution with verbose logging turned on" do
16
+ it_should_behave_like "prepping msbuild"
17
+
18
+ before :all do
19
+ @msbuild.solution = @testdata.solution_path
20
+ @msbuild.build
21
+
22
+ @log_data = @strio.string
23
+ end
24
+
25
+ it "should log the msbuild command line being called" do
26
+ @log_data.should include("Executing MSBuild: \"C:\\Windows/Microsoft.NET/Framework/v3.5/MSBuild.exe\"")
27
+ end
22
28
  end
23
29
 
24
30
  describe MSBuild, "when building with no solution specified" do
25
- before :all do
26
- @testdata = MSBuildTestData.new
27
- msbuild = @testdata.msbuild
28
- strio = StringIO.new
29
- msbuild.log_device = strio
30
- msbuild.log_level = :verbose
31
-
32
- msbuild.build
33
-
34
- @log_data = strio.string
35
- end
36
-
37
- it "should log an error message saying the output file is required" do
38
- @log_data.should include("solution cannot be nil")
39
- end
31
+ it_should_behave_like "prepping msbuild"
32
+
33
+ before :all do
34
+ @msbuild.build
35
+
36
+ @log_data = @strio.string
37
+ end
38
+
39
+ it "should log an error message saying the output file is required" do
40
+ @log_data.should include("solution cannot be nil")
41
+ end
40
42
  end
41
43
 
42
44
  describe MSBuild, "when an msbuild path is not specified" do
43
- before :all do
44
- @testdata = MSBuildTestData.new
45
- @msbuild = @testdata.msbuild
46
- end
47
-
48
- it "should default to the .net framework v3.5" do
49
- @msbuild.path_to_command.should == @testdata.msbuild_path
50
- end
45
+ before :all do
46
+ @testdata = MSBuildTestData.new
47
+ @msbuild = @testdata.msbuild
48
+ end
49
+
50
+ it "should default to the .net framework v3.5" do
51
+ @msbuild.path_to_command.should == @testdata.msbuild_path
52
+ end
51
53
  end
52
54
 
53
55
  describe MSBuild, "when an msbuild path is specified" do
54
- before :all do
55
- @testdata = MSBuildTestData.new
56
- @msbuild = @testdata.msbuild "Some Path"
57
- end
58
-
59
- it "should use the specified path for the msbuild exe" do
60
- @msbuild.path_to_command.should == "Some Path"
61
- end
56
+ before :all do
57
+ @testdata = MSBuildTestData.new
58
+ @msbuild = @testdata.msbuild "Some Path"
59
+ end
60
+
61
+ it "should use the specified path for the msbuild exe" do
62
+ @msbuild.path_to_command.should == "Some Path"
63
+ end
62
64
  end
63
65
 
64
66
  describe MSBuild, "when an invalid msbuild path is specified" do
65
- before :all do
66
- @testdata = MSBuildTestData.new
67
- msbuild = @testdata.msbuild "/an invalid path/does not exist.exe"
68
- strio = StringIO.new
69
- msbuild.log_device = strio
70
- msbuild.log_level = :verbose
71
- msbuild.solution = @testdata.solution_path
72
-
73
- msbuild.build
74
-
75
- @log_data = strio.string
76
- end
77
-
78
- it "should log an error message saying the command was not found" do
79
- @log_data.should include("Command not found: #{@testdata.msbuild_path}")
80
- end
67
+ before :all do
68
+ @testdata = MSBuildTestData.new
69
+ msbuild = @testdata.msbuild "/an invalid path/does not exist.exe"
70
+ @strio = StringIO.new
71
+ msbuild.log_device = @strio
72
+ msbuild.log_level = :verbose
73
+ msbuild.solution = @testdata.solution_path
74
+
75
+ msbuild.build
76
+
77
+ @log_data = @strio.string
78
+ end
79
+
80
+ it "should log an error message saying the command was not found" do
81
+ @log_data.should include("Command not found: #{@testdata.msbuild_path}")
82
+ end
81
83
  end
82
84
 
83
85
  describe MSBuild, "when building a visual studio solution" do
84
- before :all do
85
- @testdata = MSBuildTestData.new
86
- @msbuild = @testdata.msbuild
87
-
88
- @msbuild.solution = @testdata.solution_path
89
- @msbuild.build
90
- end
91
-
92
- it "should output the solution's binaries" do
93
- File.exist?(@testdata.output_path).should == true
94
- end
86
+ it_should_behave_like "prepping msbuild"
87
+
88
+ before :all do
89
+ @msbuild.solution = @testdata.solution_path
90
+ @msbuild.build
91
+ end
92
+
93
+ it "should output the solution's binaries" do
94
+ File.exist?(@testdata.output_path).should == true
95
+ end
96
+ end
97
+
98
+ describe MSBuild, "when building a visual studio solution with a single target" do
99
+ it_should_behave_like "prepping msbuild"
100
+
101
+ before :all do
102
+ @msbuild.solution = @testdata.solution_path
103
+ @msbuild.targets :Rebuild
104
+ @msbuild.build
105
+ end
106
+
107
+ it "should output the solution's binaries" do
108
+ File.exist?(@testdata.output_path).should == true
109
+ end
95
110
  end
96
111
 
97
112
  describe MSBuild, "when building a visual studio solution for a specified configuration" do
98
- before :all do
99
- @testdata= MSBuildTestData.new("Release")
100
- @msbuild = @testdata.msbuild
101
-
102
- @msbuild.properties = {:configuration => :Release}
103
- @msbuild.solution = @testdata.solution_path
104
- @msbuild.build
105
- end
106
-
107
- it "should build with the specified configuration as a property" do
108
- @msbuild.system_command.should include("/p:configuration=\"Release\"")
109
- end
110
-
111
- it "should output the solution's binaries according to the specified configuration" do
112
- File.exist?(@testdata.output_path).should be_true
113
- end
113
+ before :all do
114
+ @testdata= MSBuildTestData.new("Release")
115
+ @msbuild = @testdata.msbuild
116
+
117
+ @msbuild.properties :configuration => :Release
118
+ @msbuild.solution = @testdata.solution_path
119
+ @msbuild.build
120
+ end
121
+
122
+ it "should build with the specified configuration as a property" do
123
+ @msbuild.system_command.should include("/p:configuration=\"Release\"")
124
+ end
125
+
126
+ it "should output the solution's binaries according to the specified configuration" do
127
+ File.exist?(@testdata.output_path).should be_true
128
+ end
114
129
  end
115
130
 
116
- describe MSBuild, "when specifying targets to build" do
117
- before :all do
131
+ describe MSBuild, "when specifying targets to build" do
132
+ it_should_behave_like "prepping msbuild"
118
133
 
119
- @testdata= MSBuildTestData.new
120
- @msbuild = @testdata.msbuild
121
-
122
- @msbuild.targets [:Clean, :Build]
123
- @msbuild.solution = @testdata.solution_path
124
- @msbuild.build
125
- end
134
+ before :all do
135
+ @msbuild.targets :Clean, :Build
136
+ @msbuild.solution = @testdata.solution_path
137
+ @msbuild.build
138
+ end
126
139
 
127
- it "should build the targets" do
128
- @msbuild.system_command.should include("/target:Clean;Build")
129
- end
140
+ it "should build the targets" do
141
+ @msbuild.system_command.should include("/target:Clean;Build")
142
+ end
130
143
 
131
144
  end
132
145
 
133
146
  describe MSBuild, "when building a solution with a specific msbuild verbosity" do
134
- before :all do
135
- @testdata= MSBuildTestData.new
136
- @msbuild = @testdata.msbuild
137
-
138
- @msbuild.verbosity = "normal"
139
- @msbuild.solution = @testdata.solution_path
140
- @msbuild.build
141
- end
142
-
143
- it "should call msbuild with the specified verbosity" do
144
- @msbuild.system_command.should include("/verbosity:normal")
145
- end
147
+ it_should_behave_like "prepping msbuild"
148
+
149
+ before :all do
150
+ @msbuild.verbosity = "normal"
151
+ @msbuild.solution = @testdata.solution_path
152
+ @msbuild.build
153
+ end
154
+
155
+ it "should call msbuild with the specified verbosity" do
156
+ @msbuild.system_command.should include("/verbosity:normal")
157
+ end
146
158
  end
147
159
 
148
- describe MSBuild, "when specifying multiple configuration properties" do
149
- before :all do
150
- @testdata= MSBuildTestData.new
151
- @msbuild = @testdata.msbuild
152
-
153
- File.delete(@testdata.output_path) if File.exist?(@testdata.output_path)
154
-
155
- @msbuild.targets [:Clean, :Build]
156
- @msbuild.properties = {:configuration => :Debug, :DebugSymbols => true }
157
- @msbuild.solution = @testdata.solution_path
158
- @msbuild.build
159
- end
160
-
161
- it "should specify the first property" do
162
- @msbuild.system_command.should include("/p:configuration=\"Debug\"")
163
- end
164
-
165
- it "should specifiy the second property" do
166
- @msbuild.system_command.should include("/p:DebugSymbols=\"true\"")
167
- end
168
-
169
- it "should output the solution's binaries" do
170
- File.exist?(@testdata.output_path).should == true
171
- end
160
+ describe MSBuild, "when specifying multiple configuration properties" do
161
+ it_should_behave_like "prepping msbuild"
162
+
163
+ before :all do
164
+ File.delete(@testdata.output_path) if File.exist?(@testdata.output_path)
165
+
166
+ @msbuild.targets :Clean, :Build
167
+ @msbuild.properties :configuration => :Debug, :DebugSymbols => true
168
+ @msbuild.solution = @testdata.solution_path
169
+ @msbuild.build
170
+ end
171
+
172
+ it "should specify the first property" do
173
+ @msbuild.system_command.should include("/p:configuration=\"Debug\"")
174
+ end
175
+
176
+ it "should specifiy the second property" do
177
+ @msbuild.system_command.should include("/p:DebugSymbols=\"true\"")
178
+ end
179
+
180
+ it "should output the solution's binaries" do
181
+ File.exist?(@testdata.output_path).should == true
182
+ end
172
183
 
173
184
  end
@@ -4,28 +4,28 @@ require 'rake/msbuildtask'
4
4
  require 'tasklib_patch'
5
5
 
6
6
  describe Albacore::MSBuildTask, "when running" do
7
- before :all do
8
- task = Albacore::MSBuildTask.new(:msbuild) do |t|
9
- @yielded_object = t
10
- end
11
- task.extend(TasklibPatch)
12
- Rake::Task[:msbuild].invoke
13
- end
14
-
15
- it "should yield the msbuild api" do
16
- @yielded_object.kind_of?(MSBuild).should == true
17
- end
7
+ before :all do
8
+ task = Albacore::MSBuildTask.new(:msbuild) do |t|
9
+ @yielded_object = t
10
+ end
11
+ task.extend(TasklibPatch)
12
+ Rake::Task[:msbuild].invoke
13
+ end
14
+
15
+ it "should yield the msbuild api" do
16
+ @yielded_object.kind_of?(MSBuild).should == true
17
+ end
18
18
  end
19
19
 
20
20
  describe Albacore::MSBuildTask, "when execution fails" do
21
- before :all do
22
- @task = Albacore::MSBuildTask.new(:failingtask)
23
- @task.extend(TasklibPatch)
24
- @task.fail
25
- Rake::Task["failingtask"].invoke
26
- end
27
-
28
- it "should fail the rake task" do
29
- @task.task_failed.should == true
30
- end
21
+ before :all do
22
+ @task = Albacore::MSBuildTask.new(:failingtask)
23
+ @task.extend(TasklibPatch)
24
+ @task.fail
25
+ Rake::Task["failingtask"].invoke
26
+ end
27
+
28
+ it "should fail the rake task" do
29
+ @task.task_failed.should == true
30
+ end
31
31
  end
@@ -4,28 +4,28 @@ require 'rake/mspectask'
4
4
  require 'tasklib_patch'
5
5
 
6
6
  describe Albacore::MSpecTask, "when running" do
7
- before :all do
8
- task = Albacore::MSpecTask.new(:mspec) do |t|
9
- @yielded_object = t
10
- end
11
- task.extend(TasklibPatch)
12
- Rake::Task[:mspec].invoke
13
- end
14
-
15
- it "should yield the mspec api" do
16
- @yielded_object.kind_of?(MSpecTestRunner).should be_true
17
- end
7
+ before :all do
8
+ task = Albacore::MSpecTask.new(:mspec) do |t|
9
+ @yielded_object = t
10
+ end
11
+ task.extend(TasklibPatch)
12
+ Rake::Task[:mspec].invoke
13
+ end
14
+
15
+ it "should yield the mspec api" do
16
+ @yielded_object.kind_of?(MSpecTestRunner).should be_true
17
+ end
18
18
  end
19
19
 
20
20
  describe Albacore::MSpecTask, "when execution fails" do
21
- before :all do
22
- @task = Albacore::MSpecTask.new(:failingtask)
23
- @task.extend(TasklibPatch)
24
- @task.fail
25
- Rake::Task["failingtask"].invoke
26
- end
27
-
28
- it "should fail the rake task" do
29
- @task.task_failed.should == true
30
- end
21
+ before :all do
22
+ @task = Albacore::MSpecTask.new(:failingtask)
23
+ @task.extend(TasklibPatch)
24
+ @task.fail
25
+ Rake::Task["failingtask"].invoke
26
+ end
27
+
28
+ it "should fail the rake task" do
29
+ @task.task_failed.should == true
30
+ end
31
31
  end