albacore 0.0.9 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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