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
@@ -1,42 +1,44 @@
1
1
  require 'albacore/assemblyinfo'
2
2
 
3
3
  class AssemblyInfoTester < AssemblyInfo
4
-
5
- attr_accessor :assemblyinfo_file
6
-
7
- def initialize
8
- @version = "0.0.0.1"
9
- @title = "some assembly title"
10
- @description = "some assembly description goes here."
11
- @copyright = "some copyright info goes here"
12
- @com_visible = false
13
- @com_guid = "dbabb27c-a536-4b5b-91f1-2226b6e3655c"
14
- @company_name = "some company name"
15
- @product_name = "my product, yo."
16
- @file_version = "1.0.0.0"
17
- @trademark = "some trademark info goes here"
18
-
19
- setup_assemblyinfo_file
20
- end
21
-
22
- def setup_assemblyinfo_file
23
- @assemblyinfo_file = File.join(File.dirname(__FILE__), "AssemblyInfo", "AssemblyInfo.cs")
24
- File.delete @assemblyinfo_file if File.exist? @assemblyinfo_file
25
- end
26
-
27
- def build_and_read_assemblyinfo_file(assemblyinfo)
28
- assemblyinfo.output_file = @assemblyinfo_file
29
- assemblyinfo.write
4
+
5
+ attr_accessor :assemblyinfo_file
6
+
7
+ def initialize(lang_engine = nil)
8
+ @version = "0.0.0.1"
9
+ @title = "some assembly title"
10
+ @description = "some assembly description goes here."
11
+ @copyright = "some copyright info goes here"
12
+ @com_visible = false
13
+ @com_guid = "dbabb27c-a536-4b5b-91f1-2226b6e3655c"
14
+ @company_name = "some company name"
15
+ @product_name = "my product, yo."
16
+ @file_version = "1.0.0.0"
17
+ @trademark = "some trademark info goes here"
18
+ end
19
+
20
+ def setup_assemblyinfo_file
21
+ @lang_engine = CSharpEngine.new unless check_lang_engine
30
22
 
31
- contents = ''
32
- File.open(@assemblyinfo_file, "r") do |f|
33
- contents = f.read
34
- end
35
- contents
36
- end
37
-
38
- def yaml_file
39
- return File.join(File.dirname(__FILE__), "AssemblyInfo", "assemblyinfo.yml")
40
- end
41
-
42
- end
23
+ @assemblyinfo_file = File.join(File.dirname(__FILE__), "AssemblyInfo", "AssemblyInfo.test")
24
+ File.delete @assemblyinfo_file if File.exist? @assemblyinfo_file
25
+ end
26
+
27
+ def build_and_read_assemblyinfo_file(assemblyinfo)
28
+ setup_assemblyinfo_file
29
+
30
+ assemblyinfo.output_file = @assemblyinfo_file
31
+ assemblyinfo.write
32
+
33
+ contents = ''
34
+ File.open(@assemblyinfo_file, "r") do |f|
35
+ contents = f.read
36
+ end
37
+ contents
38
+ end
39
+
40
+ def yaml_file
41
+ return File.join(File.dirname(__FILE__), "AssemblyInfo", "assemblyinfo.yml")
42
+ end
43
+
44
+ end
@@ -1,77 +1,77 @@
1
1
  class ExpandTemplatesTestData
2
-
3
- def initialize
4
- @rootfolder = File.join(File.dirname(__FILE__), "expandtemplates")
5
- @templatefolder = File.join(@rootfolder, "templates")
6
- @workingfolder = File.join(@rootfolder, "working")
7
- @outputfolder = File.join(@rootfolder, "output")
8
- @datafilesfolder = File.join(@rootfolder, "datafiles")
9
- create_working_folder
10
- end
11
-
12
- def create_working_folder
13
- Dir.mkdir(@workingfolder) unless File.exist?(@workingfolder)
14
- end
2
+
3
+ def initialize
4
+ @rootfolder = File.join(File.dirname(__FILE__), "expandtemplates")
5
+ @templatefolder = File.join(@rootfolder, "templates")
6
+ @workingfolder = File.join(@rootfolder, "working")
7
+ @outputfolder = File.join(@rootfolder, "output")
8
+ @datafilesfolder = File.join(@rootfolder, "datafiles")
9
+ create_working_folder
10
+ end
11
+
12
+ def create_working_folder
13
+ Dir.mkdir(@workingfolder) unless File.exist?(@workingfolder)
14
+ end
15
15
 
16
- def prep_sample_templates
17
- FileUtils.rm(Dir.glob(File.join(@workingfolder, "*")))
18
- sleep(1)
19
-
20
- Dir.glob(File.join(@templatefolder, "*")){|f|
21
- FileUtils.copy(f, @workingfolder)
22
- }
23
- end
24
-
25
- def sample_template_file
26
- File.join(@workingfolder, "sample.config")
27
- end
28
-
29
- def multipleinstance_template_file
30
- File.join(@workingfolder, "multipleinstance.config")
31
- end
32
-
33
- def sample_output_file
34
- File.join(@workingfolder, "this_is_an_output_file.config")
35
- end
36
-
37
- def multiplevalues_template_file
38
- File.join(@workingfolder, "multiplevalues.config")
39
- end
40
-
41
- def multiplevalues_output_file
42
- File.join(@workingfolder, "multiplevalues_output_file.config")
43
- end
44
-
45
- def sample_data_file
46
- File.join(@datafilesfolder, "sample.yml")
47
- end
48
-
49
- def sample_data_file_with_include
50
- File.join(@datafilesfolder, "sample_with_include.yml")
51
- end
52
-
53
- def template_specific_data_file_with_include
54
- File.join(@datafilesfolder, "template_specific_data_file_with_include.yml")
55
- end
56
-
57
- def multiplevalues_data_file
58
- File.join(@datafilesfolder, "multiplevalues.yml")
59
- end
60
-
61
- def multitemplate_data_file
62
- File.join(@datafilesfolder, "multitemplate.yml")
63
- end
64
-
65
- def multitemplate_specificfile_data_file
66
- File.join(@datafilesfolder, "multitemplate-specificfile.yml")
67
- end
16
+ def prep_sample_templates
17
+ FileUtils.rm(Dir.glob(File.join(@workingfolder, "*")))
18
+ sleep(1)
19
+
20
+ Dir.glob(File.join(@templatefolder, "*")){|f|
21
+ FileUtils.copy(f, @workingfolder)
22
+ }
23
+ end
24
+
25
+ def sample_template_file
26
+ File.join(@workingfolder, "sample.config")
27
+ end
28
+
29
+ def multipleinstance_template_file
30
+ File.join(@workingfolder, "multipleinstance.config")
31
+ end
32
+
33
+ def sample_output_file
34
+ File.join(@workingfolder, "this_is_an_output_file.config")
35
+ end
36
+
37
+ def multiplevalues_template_file
38
+ File.join(@workingfolder, "multiplevalues.config")
39
+ end
40
+
41
+ def multiplevalues_output_file
42
+ File.join(@workingfolder, "multiplevalues_output_file.config")
43
+ end
44
+
45
+ def sample_data_file
46
+ File.join(@datafilesfolder, "sample.yml")
47
+ end
48
+
49
+ def sample_data_file_with_include
50
+ File.join(@datafilesfolder, "sample_with_include.yml")
51
+ end
52
+
53
+ def template_specific_data_file_with_include
54
+ File.join(@datafilesfolder, "template_specific_data_file_with_include.yml")
55
+ end
56
+
57
+ def multiplevalues_data_file
58
+ File.join(@datafilesfolder, "multiplevalues.yml")
59
+ end
60
+
61
+ def multitemplate_data_file
62
+ File.join(@datafilesfolder, "multitemplate.yml")
63
+ end
64
+
65
+ def multitemplate_specificfile_data_file
66
+ File.join(@datafilesfolder, "multitemplate-specificfile.yml")
67
+ end
68
68
 
69
- def read_file(file)
70
- filedata = ''
71
- File.open(file, "r") {|f|
72
- filedata = f.read
73
- }
74
- filedata
75
- end
76
-
69
+ def read_file(file)
70
+ filedata = ''
71
+ File.open(file, "r") {|f|
72
+ filedata = f.read
73
+ }
74
+ filedata
75
+ end
76
+
77
77
  end
@@ -1,32 +1,32 @@
1
1
  require 'albacore/msbuild'
2
2
 
3
3
  class MSBuildTestData
4
-
5
- attr_accessor :msbuild_path, :solution_path, :config_mode, :output_path
6
-
7
- def initialize(config_mode='Debug')
8
- @solution_path = File.join(File.dirname(__FILE__), "../", "support", "TestSolution", "TestSolution.sln")
9
- @msbuild_path = "C:\\Windows/Microsoft.NET/Framework/v3.5/MSBuild.exe"
10
- @config_mode = config_mode
11
-
12
- setup_output
13
- end
14
-
15
- def setup_output
16
- @output_path = File.join(File.dirname(__FILE__), "../", "support", "TestSolution", "TestSolution", "bin", "#{@config_mode}", "TestSolution.dll")
17
- File.delete @output_path if File.exist? @output_path
18
- end
19
-
20
- def msbuild(path_to_msbuild=nil)
21
- @msbuild = MSBuild.new
22
-
23
- if (path_to_msbuild)
24
- @msbuild_path = path_to_msbuild
25
- (@msbuild.path_to_command = path_to_msbuild)
26
- end
27
-
28
- @msbuild.extend(SystemPatch)
29
- @msbuild
30
- end
31
-
4
+
5
+ attr_accessor :msbuild_path, :solution_path, :config_mode, :output_path
6
+
7
+ def initialize(config_mode='Debug')
8
+ @solution_path = File.join(File.dirname(__FILE__), "../", "support", "TestSolution", "TestSolution.sln")
9
+ @msbuild_path = "C:\\Windows/Microsoft.NET/Framework/v3.5/MSBuild.exe"
10
+ @config_mode = config_mode
11
+
12
+ setup_output
13
+ end
14
+
15
+ def setup_output
16
+ @output_path = File.join(File.dirname(__FILE__), "../", "support", "TestSolution", "TestSolution", "bin", "#{@config_mode}", "TestSolution.dll")
17
+ File.delete @output_path if File.exist? @output_path
18
+ end
19
+
20
+ def msbuild(path_to_msbuild=nil)
21
+ @msbuild = MSBuild.new
22
+
23
+ if (path_to_msbuild)
24
+ @msbuild_path = path_to_msbuild
25
+ (@msbuild.path_to_command = path_to_msbuild)
26
+ end
27
+
28
+ @msbuild.extend(SystemPatch)
29
+ @msbuild
30
+ end
31
+
32
32
  end
@@ -0,0 +1,33 @@
1
+ require 'albacore/nant'
2
+
3
+ class NAntTestData
4
+
5
+ attr_accessor :nant_path, :build_file_path, :output_path
6
+
7
+ def initialize(config_mode='Debug',version='0.0.1')
8
+ @config_mode = config_mode
9
+ @version = version
10
+
11
+ @nant_path = File.join(File.dirname(__FILE__), "Tools", "NAnt-0.85", "bin", "NAnt.exe")
12
+ @build_file_path = File.join(File.dirname(__FILE__), "TestSolution", "TestSolution.build")
13
+ setup_output
14
+ end
15
+
16
+ def setup_output
17
+ @output_root = File.join(File.dirname(__FILE__), "TestSolution", "out")
18
+ @output_path = File.join(@output_root, "#{@version}", "#{@config_mode}")
19
+ clean_output
20
+ end
21
+
22
+ def clean_output
23
+ FileUtils.rm_rf @output_root
24
+ end
25
+
26
+ def nant
27
+ @nant = NAnt.new
28
+
29
+ @nant.extend(SystemPatch)
30
+ @nant
31
+ end
32
+
33
+ end
@@ -0,0 +1,18 @@
1
+ class NCoverConsoleTestData
2
+ attr_accessor :ncoverpath, :nunitpath, :xml_coverage_output, :html_coverage_output, :working_directory
3
+ attr_accessor :test_assembly, :failing_test_assembly, :mspecpath, :mspec_html_output, :mspec_test_assembly
4
+
5
+ def initialize
6
+ @ncoverpath = File.join(File.dirname(__FILE__), '..', 'support', 'Tools', 'NCover-v3.3', 'NCover.Console.exe')
7
+ @nunitpath = File.join(File.dirname(__FILE__), '..', 'support', 'Tools', 'NUnit-v2.5', 'nunit-console-x86.exe')
8
+ @xml_coverage_output = File.join(File.expand_path(File.dirname(__FILE__)), '..', 'support', 'CodeCoverage', 'nunit', 'test-coverage.xml')
9
+ @html_coverage_output = File.join(File.expand_path(File.dirname(__FILE__)), '..', 'support', 'CodeCoverage', 'nunit', 'html', 'test-coverage.html')
10
+ @working_directory = File.join(File.expand_path(File.dirname(__FILE__)), '..', 'support', 'CodeCoverage', 'nunit')
11
+ @test_assembly = File.join(File.expand_path(File.dirname(__FILE__)), '..', 'support', 'CodeCoverage', 'nunit', 'assemblies', 'TestSolution.Tests.dll')
12
+ @failing_test_assembly = File.join(File.expand_path(File.dirname(__FILE__)), '..', 'support', 'CodeCoverage', 'nunit', 'failing_assemblies', 'TestSolution.FailingTests.dll')
13
+
14
+ @mspecpath = File.join(File.dirname(__FILE__), '..', 'support', 'Tools', 'Machine.Specification-v0.2', 'Machine.Specifications.ConsoleRunner.exe')
15
+ @mspec_html_output = File.join(File.expand_path(File.dirname(__FILE__)), '..', 'support', 'CodeCoverage', 'mspec', 'html')
16
+ @mspec_test_assembly = File.join(File.expand_path(File.dirname(__FILE__)), '..', 'support', 'CodeCoverage', 'mspec', 'assemblies', 'TestSolution.MSpecTests.dll')
17
+ end
18
+ end
@@ -1,26 +1,26 @@
1
1
  class NCoverReportTestData
2
- @filedir = File.dirname(__FILE__)
3
- @output_folder = File.expand_path(File.join(@filedir, "CodeCoverage", "report", "output"))
4
-
5
- def self.path_to_command
6
- File.expand_path(File.join(@filedir, "Tools", "NCover-v3.3", "NCover.Reporting.exe"))
7
- end
8
-
9
- def self.coverage_file
10
- File.expand_path(File.join(@filedir, "CodeCoverage", "report", "coverage.xml"))
11
- end
12
-
13
- def self.output_folder
14
- @output_folder
15
- end
16
-
17
- def self.clean_output_folder
18
- FileUtils.rmtree(@output_folder)
19
- Dir.mkdir(@output_folder) unless File.exist?(@output_folder)
20
- sleep(3) # this is a hack to work around the slow hard drive in my laptop, which caused failing tests w/ write-through-cache.
21
- end
22
-
23
- def self.summary_output_file
24
- File.join(NCoverReportTestData.output_folder, "summary.html")
25
- end
2
+ @filedir = File.dirname(__FILE__)
3
+ @output_folder = File.expand_path(File.join(@filedir, "CodeCoverage", "report", "output"))
4
+
5
+ def self.path_to_command
6
+ File.expand_path(File.join(@filedir, "Tools", "NCover-v3.3", "NCover.Reporting.exe"))
7
+ end
8
+
9
+ def self.coverage_file
10
+ File.expand_path(File.join(@filedir, "CodeCoverage", "report", "coverage.xml"))
11
+ end
12
+
13
+ def self.output_folder
14
+ @output_folder
15
+ end
16
+
17
+ def self.clean_output_folder
18
+ FileUtils.rmtree(@output_folder)
19
+ Dir.mkdir(@output_folder) unless File.exist?(@output_folder)
20
+ sleep(3) # this is a hack to work around the slow hard drive in my laptop, which caused failing tests w/ write-through-cache.
21
+ end
22
+
23
+ def self.summary_output_file
24
+ File.join(NCoverReportTestData.output_folder, "summary.html")
25
+ end
26
26
  end
@@ -7,11 +7,12 @@ $: << File.join(@root_dir, "spec/support")
7
7
 
8
8
  require 'rake/tasklib'
9
9
  require 'lib/rake/support/albacoretask.rb'
10
+ require 'lib/albacore/support/globalconfig.rb'
10
11
  require 'not_a_mock'
11
12
  require 'system_patch'
12
13
  require 'tasklib_patch'
13
14
 
14
15
  Spec::Runner.configure do |config|
15
- config.mock_with NotAMock::RspecMockFrameworkAdapter
16
+ config.mock_with NotAMock::RspecMockFrameworkAdapter
16
17
  end
17
18
 
@@ -0,0 +1,3 @@
1
+ properties: {:configuration: :release, :platform: 'Any CPU'}
2
+ targets: [:clean, :build]
3
+ solution: "spec/support/TestSolution/TestSolution.sln"
@@ -0,0 +1 @@
1
+ some_attribute: "this value was loaded from a folder, specified by Albacore::yaml_config_folder"
@@ -1,8 +1,13 @@
1
1
  class ZipTestData
2
-
3
- @@folder = File.expand_path(File.join(File.dirname(__FILE__), 'zip'))
4
-
5
- def self.folder
6
- @@folder
7
- end
2
+
3
+ @@folder = File.expand_path(File.join(File.dirname(__FILE__), 'zip'))
4
+ @@output_folder = File.expand_path(File.join(File.dirname(__FILE__), 'zip_output'))
5
+
6
+ def self.folder
7
+ @@folder
8
+ end
9
+
10
+ def self.output_folder
11
+ @@output_folder
12
+ end
8
13
  end
@@ -0,0 +1,63 @@
1
+ require File.join(File.dirname(__FILE__), 'support', 'spec_helper')
2
+ require 'albacore/xunittestrunner'
3
+
4
+ @@xunitpath = File.join(File.dirname(__FILE__), 'support', 'Tools', 'XUnit-v1.5', 'xunit.console.exe')
5
+ @@test_assembly = File.join(File.expand_path(File.dirname(__FILE__)), 'support', 'CodeCoverage', 'xunit', 'assemblies', 'TestSolution.XUnitTests.dll')
6
+ @@output_option = "/out=xunit.results.html"
7
+
8
+ describe XUnitTestRunner, "the command parameters for an xunit runner" do
9
+ before :all do
10
+ xunit = XUnitTestRunner.new(@@xunitpath)
11
+ xunit.assembly = @@test_assembly
12
+ xunit.options @@output_option
13
+
14
+ @command_parameters = xunit.get_command_parameters
15
+ end
16
+
17
+ it "should not include the path to the command" do
18
+ @command_parameters.should_not include(@@xunitpath)
19
+ end
20
+
21
+ it "should include the list of assemblies" do
22
+ @command_parameters.should include("\"#{@@test_assembly}\"")
23
+ end
24
+
25
+ it "should include the list of options" do
26
+ @command_parameters.should include(@@output_option)
27
+ end
28
+ end
29
+
30
+ describe XUnitTestRunner, "the command line string for an xunit runner" do
31
+ before :all do
32
+ xunit = XUnitTestRunner.new(@@xunitpath)
33
+ xunit.assembly = @@test_assembly
34
+ xunit.options @@output_option
35
+
36
+ @command_line = xunit.get_command_line
37
+ @command_parameters = xunit.get_command_parameters.join(" ")
38
+ end
39
+
40
+ it "should start with the path to the command" do
41
+ @command_line.split(" ").first.should == @@xunitpath
42
+ end
43
+
44
+ it "should include the command parameters" do
45
+ @command_line.should include(@command_parameters)
46
+ end
47
+ end
48
+
49
+
50
+ describe XUnitTestRunner, "when configured correctly" do
51
+ before :all do
52
+ xunit = XUnitTestRunner.new(@@xunitpath)
53
+ xunit.assembly = @@test_assembly
54
+ xunit.options '/noshadow'
55
+
56
+ xunit.execute
57
+ @failed = xunit.failed
58
+ end
59
+
60
+ it "should execute" do
61
+ @failed.should be_false
62
+ end
63
+ end