albacore 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -86,5 +86,8 @@ Many thanks for contributions to albacore are due (in alphabetical order):
86
86
  * [James Gregory](http://github.com/jagregory): the Docu task
87
87
  * [Kevin Colyar](http://github.com/kevincolyar): Testing and updating of MSBuild to work with Cygwin
88
88
  * [Mark Wilkins](http://github.com/markwilk): VB.NET Language Generator For The AssemblyInfo Task
89
+ * [Mike Nichols](http://github.com/mnichols): XUnit contributions, bug reports, etc
90
+ * [Nils Jonsson](http://github.com/njonsson): AssemblyInfo corrections, rakefile corrections
89
91
  * [Sean Biefeld](http://github.com/seanbiefeld): MSpecTestRunner for NCoverConsole
90
92
  * [Steven Harman](http://github.com/stevenharman): Finding some wicked bugs, patching nunit test runner, and the nant task
93
+ * [Panda Wood](http://github.com/pandawood): NCover Console options and wiki edits
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.3
1
+ 0.1.4
@@ -78,6 +78,7 @@ class AssemblyInfo
78
78
 
79
79
  @namespaces << "System.Reflection"
80
80
  @namespaces << "System.Runtime.InteropServices"
81
+ @namespaces.uniq!
81
82
 
82
83
  ns = ''
83
84
  @namespaces.each do |n|
@@ -1,4 +1,5 @@
1
1
  require 'albacore/support/failure'
2
+ require 'albacore/support/attrmethods.rb'
2
3
 
3
4
  module RunCommand
4
5
  extend AttrMethods
@@ -19,9 +20,10 @@ module RunCommand
19
20
  return false unless valid_command_exists
20
21
  end
21
22
 
22
- @parameters = @parameters.push(command_parameters) unless command_parameters.nil?
23
+ combine_parameters = @parameters.collect
24
+ combine_parameters.push(command_parameters) unless command_parameters.nil?
23
25
 
24
- command = "\"#{@path_to_command}\" #{@parameters.join(' ')}"
26
+ command = "\"#{@path_to_command}\" #{combine_parameters.join(' ')}"
25
27
  @logger.debug "Executing #{command_name}: #{command}"
26
28
 
27
29
  set_working_directory
@@ -47,4 +49,4 @@ module RunCommand
47
49
  return if Dir.pwd == @original_directory
48
50
  Dir.chdir(@original_directory)
49
51
  end
50
- end
52
+ end
@@ -5,8 +5,8 @@ class XUnitTestRunner
5
5
  include RunCommand
6
6
  include YAMLConfig
7
7
 
8
- attr_accessor :html_output, :assembly
9
- attr_array :options
8
+ attr_accessor :html_output
9
+ attr_array :options,:assembly,:assemblies
10
10
 
11
11
  def initialize(path_to_command='')
12
12
  @path_to_command = path_to_command
@@ -24,22 +24,28 @@ class XUnitTestRunner
24
24
  end
25
25
 
26
26
  def get_command_parameters
27
- command_params = []
28
- command_params << assembly.inspect unless @assembly.nil?
27
+ command_params = []
29
28
  command_params << @options.join(" ") unless @options.nil?
30
29
  command_params << build_html_output unless @html_output.nil?
31
30
  command_params
32
31
  end
33
32
 
34
- def execute()
35
- command_params = get_command_parameters
36
- result = run_command "XUnit", command_params.join(" ")
37
-
38
- failure_message = 'XUnit Failed. See Build Log For Detail'
39
- fail_with_message failure_message if !result
33
+ def execute()
34
+ @assemblies = [] unless !@assemblies.nil?
35
+ @assemblies << @assembly unless @assembly.nil?
36
+ fail_with_message 'At least one assembly is required for assemblies attr' if @assemblies.length==0
37
+ failure_message = 'XUnit Failed. See Build Log For Detail'
38
+
39
+ @assemblies.each do |assm|
40
+ command_params = get_command_parameters.collect{ |p| p % File.basename(assm) }
41
+ command_params.insert(0,assm)
42
+ result = run_command "XUnit", command_params.join(" ")
43
+ fail_with_message failure_message if !result
44
+ end
40
45
  end
41
46
 
42
- def build_html_output
43
- "/html #{@html_output}"
47
+ def build_html_output
48
+ fail_with_message 'Directory is required for html_output' if !File.directory?(File.expand_path(@html_output))
49
+ "/html #{File.join(File.expand_path(@html_output),"%s.html")}"
44
50
  end
45
- end
51
+ end
@@ -1,3 +1,3 @@
1
- create_task :assemblyinfo, AssemblyInfo.new do |asm|
1
+ create_task :assemblyinfo, Proc.new { AssemblyInfo.new } do |asm|
2
2
  asm.write
3
3
  end
@@ -1,3 +1,3 @@
1
- create_task :docu, Docu.new do |doc|
1
+ create_task :docu, Proc.new { Docu.new } do |doc|
2
2
  doc.execute
3
3
  end
@@ -1,3 +1,3 @@
1
- create_task :exec, Exec.new do |ex|
1
+ create_task :exec, Proc.new { Exec.new } do |ex|
2
2
  ex.execute
3
- end
3
+ end
@@ -1,3 +1,3 @@
1
- create_task :expandtemplates, ExpandTemplates.new do |exp|
1
+ create_task :expandtemplates, Proc.new { ExpandTemplates.new } do |exp|
2
2
  exp.expand
3
- end
3
+ end
@@ -1,3 +1,3 @@
1
- create_task :msbuild, MSBuild.new do |msbuild|
1
+ create_task :msbuild, Proc.new { MSBuild.new } do |msbuild|
2
2
  msbuild.build
3
3
  end
@@ -1,3 +1,3 @@
1
- create_task :mspec, MSpecTestRunner.new do |mspec|
1
+ create_task :mspec, Proc.new { MSpecTestRunner.new } do |mspec|
2
2
  mspec.execute
3
- end
3
+ end
@@ -1,3 +1,3 @@
1
- create_task :nant, NAnt.new do |nant|
1
+ create_task :nant, Proc.new { NAnt.new } do |nant|
2
2
  nant.run
3
3
  end
@@ -1,3 +1,3 @@
1
- create_task :ncoverconsole, NCoverConsole.new do |ncover|
1
+ create_task :ncoverconsole, Proc.new { NCoverConsole.new } do |ncover|
2
2
  ncover.run
3
3
  end
@@ -1,3 +1,3 @@
1
- create_task :ncoverreport, NCoverReport.new do |ncoverreport|
1
+ create_task :ncoverreport, Proc.new { NCoverReport.new } do |ncoverreport|
2
2
  ncoverreport.run
3
- end
3
+ end
@@ -1,3 +1,3 @@
1
- create_task :ndepend, NDepend.new do |cmd|
1
+ create_task :ndepend, Proc.new { NDepend.new } do |cmd|
2
2
  cmd.run
3
- end
3
+ end
@@ -1,3 +1,3 @@
1
- create_task :nunit, NUnitTestRunner.new do |n|
1
+ create_task :nunit, Proc.new { NUnitTestRunner.new } do |n|
2
2
  n.execute
3
3
  end
@@ -1,3 +1,3 @@
1
- create_task :plink, PLink.new() do |cmd|
1
+ create_task :plink, Proc.new { PLink.new() } do |cmd|
2
2
  cmd.run
3
3
  end
@@ -1,3 +1,3 @@
1
- create_task :rename, Renamer.new do |ren|
1
+ create_task :rename, Proc.new { Renamer.new } do |ren|
2
2
  ren.rename
3
3
  end
@@ -1,3 +1,3 @@
1
- create_task :sftp, Sftp.new do |cmd|
1
+ create_task :sftp, Proc.new { Sftp.new } do |cmd|
2
2
  cmd.upload
3
- end
3
+ end
@@ -1,3 +1,3 @@
1
- create_task :sqlcmd, SQLCmd.new do |cmd|
1
+ create_task :sqlcmd, Proc.new { SQLCmd.new } do |cmd|
2
2
  cmd.run
3
- end
3
+ end
@@ -1,3 +1,3 @@
1
- create_task :ssh, Ssh.new do |cmd|
1
+ create_task :ssh, Proc.new { Ssh.new } do |cmd|
2
2
  cmd.execute
3
3
  end
@@ -1,4 +1,4 @@
1
- def create_task(taskname, task_object, &execute_body)
1
+ def create_task(taskname, task_object_proc, &execute_body)
2
2
  taskclass = :"Albacore_TaskFor_#{taskname}"
3
3
  taskmethod = taskname.to_s.downcase.to_sym
4
4
 
@@ -11,10 +11,11 @@ def create_task(taskname, task_object, &execute_body)
11
11
  Albacore.class_eval do
12
12
  const_set(taskclass, Class.new(Albacore::AlbacoreTask) do
13
13
  define_method :execute do |name|
14
+ task_object = task_object_proc.call
14
15
  task_object.load_config_by_task_name(name)
15
16
  call_task_block(task_object)
16
17
  execute_body.call(task_object) unless execute_body.nil?
17
18
  end
18
19
  end)
19
20
  end
20
- end
21
+ end
@@ -1,3 +1,3 @@
1
- create_task :unzip, Unzip.new do |zip|
1
+ create_task :unzip, Proc.new { Unzip.new } do |zip|
2
2
  zip.unzip
3
- end
3
+ end
@@ -1,7 +1,7 @@
1
- create_task :xbuild, XBuild.new do |xb|
1
+ create_task :xbuild, Proc.new { XBuild.new } do |xb|
2
2
  xb.build
3
3
  end
4
4
 
5
- create_task :mono, XBuild.new do |xb|
5
+ create_task :mono, Proc.new { XBuild.new } do |xb|
6
6
  xb.build
7
7
  end
@@ -1,3 +1,3 @@
1
- create_task :xunit, XUnitTestRunner.new do |x|
1
+ create_task :xunit, Proc.new { XUnitTestRunner.new } do |x|
2
2
  x.execute
3
- end
3
+ end
@@ -1,3 +1,3 @@
1
- create_task :zip, ZipDirectory.new do |z|
1
+ create_task :zip, Proc.new { ZipDirectory.new } do |z|
2
2
  z.package
3
- end
3
+ end
@@ -4,133 +4,136 @@ task :default => ['albacore:sample']
4
4
 
5
5
  namespace :specs do
6
6
  require 'spec/rake/spectask'
7
+ runtime_is_ironruby = (!defined?(IRONRUBY_VERSION).nil?)
7
8
 
8
9
  @spec_opts = '--colour --format specdoc'
9
10
 
10
11
  desc "Run functional specs for Albacore"
11
12
  Spec::Rake::SpecTask.new :all do |t|
12
- t.spec_files = 'spec/**/*_spec.rb'
13
+ t.spec_files = FileList['spec/**/*_spec.rb'].exclude{ |f|
14
+ f if runtime_is_ironruby && (f.include?("ssh") || f.include?("sftp"))
15
+ }
13
16
  t.spec_opts << @spec_opts
14
17
  end
15
18
 
16
19
  desc "Run rake task specs for Albacore"
17
20
  Spec::Rake::SpecTask.new :tasks do |t|
18
- t.spec_files = 'spec/**/*task_spec.rb'
21
+ t.spec_files = FileList['spec/**/*task_spec.rb']
19
22
  t.spec_opts << @spec_opts
20
23
  end
21
24
 
22
25
  desc "Assembly info functional specs"
23
26
  Spec::Rake::SpecTask.new :assemblyinfo do |t|
24
- t.spec_files = 'spec/assemblyinfo*_spec.rb'
27
+ t.spec_files = FileList['spec/assemblyinfo*_spec.rb']
25
28
  t.spec_opts << @spec_opts
26
29
  end
27
30
 
28
31
  desc "MSBuild functional specs"
29
32
  Spec::Rake::SpecTask.new :msbuild do |t|
30
- t.spec_files = 'spec/msbuild*_spec.rb'
33
+ t.spec_files = FileList['spec/msbuild*_spec.rb']
31
34
  t.spec_opts << @spec_opts
32
35
  end
33
36
 
34
37
  desc "SQLServer SQLCmd functional specs"
35
38
  Spec::Rake::SpecTask.new :sqlcmd do |t|
36
- t.spec_files = 'spec/sqlcmd*_spec.rb'
39
+ t.spec_files = FileList['spec/sqlcmd*_spec.rb']
37
40
  t.spec_opts << @spec_opts
38
41
  end
39
42
 
40
43
 
41
44
  desc "Nant functional specs"
42
45
  Spec::Rake::SpecTask.new :nant do |t|
43
- t.spec_files = 'spec/nant*_spec.rb'
46
+ t.spec_files = FileList['spec/nant*_spec.rb']
44
47
  t.spec_opts << @spec_opts
45
48
  end
46
49
 
47
50
  desc "NCover Console functional specs"
48
51
  Spec::Rake::SpecTask.new :ncoverconsole do |t|
49
- t.spec_files = 'spec/ncoverconsole*_spec.rb'
52
+ t.spec_files = FileList['spec/ncoverconsole*_spec.rb']
50
53
  t.spec_opts << @spec_opts
51
54
  end
52
55
 
53
56
  desc "NCover Report functional specs"
54
57
  Spec::Rake::SpecTask.new :ncoverreport do |t|
55
- t.spec_files = 'spec/ncoverreport*_spec.rb'
58
+ t.spec_files = FileList['spec/ncoverreport*_spec.rb']
56
59
  t.spec_opts << @spec_opts
57
60
  end
58
61
 
59
62
  desc "SSH functional specs"
60
63
  Spec::Rake::SpecTask.new :ssh do |t|
61
- t.spec_files = 'spec/ssh*_spec.rb'
64
+ t.spec_files = FileList['spec/ssh*_spec.rb']
62
65
  t.spec_opts << @spec_opts
63
66
  end
64
67
 
65
68
  desc "Plink functional specs"
66
69
  Spec::Rake::SpecTask.new :plink do |t|
67
- t.spec_files = 'spec/plink*_spec.rb'
70
+ t.spec_files = FileList['spec/plink*_spec.rb']
68
71
  t.spec_opts << @spec_opts
69
72
  end
70
73
 
71
74
  desc "Ndepend functional specs"
72
75
  Spec::Rake::SpecTask.new :ndepend do |t|
73
- t.spec_files = 'spec/ndepend*_spec.rb'
76
+ t.spec_files = FileList['spec/ndepend*_spec.rb']
74
77
  t.spec_opts << @spec_opts
75
78
  end
76
79
 
77
80
  desc "SFTP functional specs"
78
81
  Spec::Rake::SpecTask.new :sftp do |t|
79
- t.spec_files = 'spec/sftp*_spec.rb'
82
+ t.spec_files = FileList['spec/sftp*_spec.rb']
80
83
  t.spec_opts << @spec_opts
81
84
  end
82
85
 
83
86
  desc "Expand Templates functional specs"
84
87
  Spec::Rake::SpecTask.new :templates do |t|
85
- t.spec_files = 'spec/expandtemplates*_spec.rb'
88
+ t.spec_files = FileList['spec/expandtemplates*_spec.rb']
86
89
  t.spec_opts << @spec_opts
87
90
  end
88
91
 
89
92
  desc "Zip functional specs"
90
93
  Spec::Rake::SpecTask.new :zip do |t|
91
- t.spec_files = 'spec/zip*_spec.rb'
94
+ t.spec_files = FileList['spec/zip*_spec.rb']
92
95
  t.spec_opts << @spec_opts
93
96
  end
94
97
 
95
98
  desc "XUnit functional specs"
96
99
  Spec::Rake::SpecTask.new :xunit do |t|
97
- t.spec_files = 'spec/xunit*_spec.rb'
100
+ t.spec_files = FileList['spec/xunit*_spec.rb']
98
101
  t.spec_opts << @spec_opts
99
102
  end
100
103
 
101
104
  desc "NUnit functional specs"
102
105
  Spec::Rake::SpecTask.new :nunit do |t|
103
- t.spec_files = 'spec/nunit*_spec.rb'
106
+ t.spec_files = FileList['spec/nunit*_spec.rb']
104
107
  t.spec_opts << @spec_opts
105
108
  end
106
109
 
107
110
  desc "MSpec functional specs"
108
111
  Spec::Rake::SpecTask.new :mspec do |t|
109
- t.spec_files = 'spec/mspec*_spec.rb'
112
+ t.spec_files = FileList['spec/mspec*_spec.rb']
110
113
  t.spec_opts << @spec_opts
111
114
  end
112
115
 
113
116
  desc "Exec functional specs"
114
117
  Spec::Rake::SpecTask.new :exec do |t|
115
- t.spec_files = 'spec/exec*_spec.rb'
118
+ t.spec_files = FileList['spec/exec*_spec.rb']
116
119
  t.spec_opts << @spec_opts
117
120
  end
118
121
 
119
122
  desc "Rename functional specs"
120
123
  Spec::Rake::SpecTask.new :rename do |t|
121
- t.spec_files = 'spec/rename*_spec.rb'
124
+ t.spec_files = FileList['spec/rename*_spec.rb']
122
125
  t.spec_opts << @spec_opts
123
126
  end
124
127
 
125
128
  desc "Docu functional specs"
126
129
  Spec::Rake::SpecTask.new :docu do |t|
127
- t.spec_files = 'spec/docu*_spec.rb'
130
+ t.spec_files = FileList['spec/docu*_spec.rb']
128
131
  t.spec_opts << @spec_opts
129
132
  end
130
133
 
131
134
  desc "YAML Config functional specs"
132
135
  Spec::Rake::SpecTask.new :yamlconfig do |t|
133
- t.spec_files = 'spec/yaml*_spec.rb'
136
+ t.spec_files = FileList['spec/yaml*_spec.rb']
134
137
  t.spec_opts << @spec_opts
135
138
  end
136
139
  end
@@ -262,7 +265,7 @@ namespace :jeweler do
262
265
  gs.description = "Easily build your .NET solutions with Ruby and Rake, using this suite of Rake tasks."
263
266
  gs.email = "derickbailey@gmail.com"
264
267
  gs.homepage = "http://albacorebuild.net"
265
- gs.authors = ["Derick Bailey", "Ben Hall"]
268
+ gs.authors = ["Derick Bailey", "Ben Hall", "etc"]
266
269
  gs.has_rdoc = false
267
270
  gs.files.exclude("albacore.gemspec", ".gitignore", "spec/support/Tools")
268
271
 
@@ -68,11 +68,13 @@ describe AssemblyInfo, "when providing a custom namespace without specifiying th
68
68
 
69
69
  asm.namespaces 'My.Name.Space'
70
70
 
71
+ # Generate the same file twice.
72
+ @tester.build_and_read_assemblyinfo_file asm
71
73
  @filedata = @tester.build_and_read_assemblyinfo_file asm
72
74
  end
73
75
 
74
76
  it "should default to c# for the generated assemby info" do
75
- @filedata.should include("using My.Name.Space;")
77
+ @filedata.scan('using My.Name.Space;').length.should == 1
76
78
  end
77
79
  end
78
80
 
@@ -85,12 +87,14 @@ describe AssemblyInfo, "when providing custom namespaces and specifying C#" do
85
87
 
86
88
  asm.namespaces 'My.Name.Space', 'Another.Namespace.GoesHere'
87
89
 
90
+ # Generate the same file twice.
91
+ @tester.build_and_read_assemblyinfo_file asm
88
92
  @filedata = @tester.build_and_read_assemblyinfo_file asm
89
93
  end
90
94
 
91
95
  it "should write the namespaces into the using statements" do
92
- @filedata.should include("using My.Name.Space;")
93
- @filedata.should include("using Another.Namespace.GoesHere;")
96
+ @filedata.scan('using My.Name.Space;').length.should == 1
97
+ @filedata.scan('using Another.Namespace.GoesHere;').length.should == 1
94
98
  end
95
99
  end
96
100
 
@@ -103,12 +107,14 @@ describe AssemblyInfo, "when providing custom namespaces and specifying VB.NET"
103
107
 
104
108
  asm.namespaces 'My.Name.Space', 'Another.Namespace.GoesHere'
105
109
 
110
+ # Generate the same file twice.
111
+ @tester.build_and_read_assemblyinfo_file asm
106
112
  @filedata = @tester.build_and_read_assemblyinfo_file asm
107
113
  end
108
114
 
109
115
  it "should write the namespaces into the imports statements" do
110
- @filedata.should include("Imports My.Name.Space")
111
- @filedata.should include("Imports Another.Namespace.GoesHere")
116
+ @filedata.scan('Imports My.Name.Space').length.should == 1
117
+ @filedata.scan('Imports Another.Namespace.GoesHere').length.should == 1
112
118
  end
113
119
  end
114
120
 
@@ -119,12 +125,14 @@ describe AssemblyInfo, "when providing custom attributes without specifying a la
119
125
 
120
126
  asm.custom_attributes :CustomAttribute => "custom attribute data", :AnotherAttribute => "more data here"
121
127
 
128
+ # Generate the same file twice.
129
+ @tester.build_and_read_assemblyinfo_file asm
122
130
  @filedata = @tester.build_and_read_assemblyinfo_file asm
123
131
  end
124
132
 
125
133
  it "should write the custom attributes to the assembly info file" do
126
- @filedata.should include("[assembly: CustomAttribute(\"custom attribute data\")]")
127
- @filedata.should include("[assembly: AnotherAttribute(\"more data here\")]")
134
+ @filedata.scan('[assembly: CustomAttribute("custom attribute data")]').length.should == 1
135
+ @filedata.scan('[assembly: AnotherAttribute("more data here")]').length.should == 1
128
136
  end
129
137
  end
130
138
 
@@ -137,12 +145,14 @@ describe AssemblyInfo, "when providing custom attributes and specifying C#" do
137
145
 
138
146
  asm.custom_attributes :CustomAttribute => "custom attribute data", :AnotherAttribute => "more data here"
139
147
 
148
+ # Generate the same file twice.
149
+ @tester.build_and_read_assemblyinfo_file asm
140
150
  @filedata = @tester.build_and_read_assemblyinfo_file asm
141
151
  end
142
152
 
143
153
  it "should write the custom attributes to the assembly info file" do
144
- @filedata.should include("[assembly: CustomAttribute(\"custom attribute data\")]")
145
- @filedata.should include("[assembly: AnotherAttribute(\"more data here\")]")
154
+ @filedata.scan('[assembly: CustomAttribute("custom attribute data")]').length.should == 1
155
+ @filedata.scan('[assembly: AnotherAttribute("more data here")]').length.should == 1
146
156
  end
147
157
  end
148
158
 
@@ -155,12 +165,14 @@ describe AssemblyInfo, "when providing custom attributes and specifying VB.NET"
155
165
 
156
166
  asm.custom_attributes :CustomAttribute => "custom attribute data", :AnotherAttribute => "more data here"
157
167
 
168
+ # Generate the same file twice.
169
+ @tester.build_and_read_assemblyinfo_file asm
158
170
  @filedata = @tester.build_and_read_assemblyinfo_file asm
159
171
  end
160
172
 
161
173
  it "should write the custom attributes to the assembly info file" do
162
- @filedata.should include("<assembly: CustomAttribute(\"custom attribute data\")>")
163
- @filedata.should include("<assembly: AnotherAttribute(\"more data here\")>")
174
+ @filedata.scan('<assembly: CustomAttribute("custom attribute data")>').length.should == 1
175
+ @filedata.scan('<assembly: AnotherAttribute("more data here")>').length.should == 1
164
176
  end
165
177
  end
166
178
 
@@ -171,11 +183,13 @@ describe AssemblyInfo, "when specifying a custom attribute with no data" do
171
183
 
172
184
  asm.custom_attributes :NoArgsAttribute => nil
173
185
 
186
+ # Generate the same file twice.
187
+ @tester.build_and_read_assemblyinfo_file asm
174
188
  @filedata = @tester.build_and_read_assemblyinfo_file asm
175
189
  end
176
190
 
177
191
  it "should write the attribute with an empty argument list" do
178
- @filedata.should include("[assembly: NoArgsAttribute()]")
192
+ @filedata.scan('[assembly: NoArgsAttribute()]').length.should == 1
179
193
  end
180
194
  end
181
195
 
@@ -186,11 +200,13 @@ describe AssemblyInfo, "when specifying an attribute with non-string data" do
186
200
 
187
201
  asm.custom_attributes :NonStringAttribute => true
188
202
 
203
+ # Generate the same file twice.
204
+ @tester.build_and_read_assemblyinfo_file asm
189
205
  @filedata = @tester.build_and_read_assemblyinfo_file asm
190
206
  end
191
207
 
192
208
  it "should write the attribute data without quotes" do
193
- @filedata.should include("[assembly: NonStringAttribute(true)]")
209
+ @filedata.scan('[assembly: NonStringAttribute(true)]').length.should == 1
194
210
  end
195
211
  end
196
212
 
@@ -210,52 +226,54 @@ describe AssemblyInfo, "when generating an assembly info file with the built in
210
226
  asm.file_version = @tester.file_version
211
227
  asm.trademark = @tester.trademark
212
228
 
229
+ # Generate the same file twice.
230
+ @tester.build_and_read_assemblyinfo_file asm
213
231
  @filedata = @tester.build_and_read_assemblyinfo_file asm
214
232
  end
215
233
 
216
234
  it "should use the system.reflection namespace" do
217
- @filedata.should include("using System.Reflection;")
235
+ @filedata.scan('using System.Reflection;').length.should == 1
218
236
  end
219
237
 
220
238
  it "should use the system.runtime.interopservices namespace" do
221
- @filedata.should include("using System.Runtime.InteropServices;")
239
+ @filedata.scan('using System.Runtime.InteropServices;').length.should == 1
222
240
  end
223
241
 
224
242
  it "should contain the specified version information" do
225
- @filedata.should include("[assembly: AssemblyVersion(\"#{@tester.version}\")]")
243
+ @filedata.scan(%Q|[assembly: AssemblyVersion("#{@tester.version}")]|).length.should == 1
226
244
  end
227
245
 
228
246
  it "should contain the assembly title" do
229
- @filedata.should include("[assembly: AssemblyTitle(\"#{@tester.title}\")]")
247
+ @filedata.scan(%Q|[assembly: AssemblyTitle("#{@tester.title}")]|).length.should == 1
230
248
  end
231
249
 
232
250
  it "should contain the assembly description" do
233
- @filedata.should include("[assembly: AssemblyDescription(\"#{@tester.description}\")]")
251
+ @filedata.scan(%Q|[assembly: AssemblyDescription("#{@tester.description}")|).length.should == 1
234
252
  end
235
253
 
236
254
  it "should contain the copyright information" do
237
- @filedata.should include("[assembly: AssemblyCopyright(\"#{@tester.copyright}\")]")
255
+ @filedata.scan(%Q|[assembly: AssemblyCopyright("#{@tester.copyright}")]|).length.should == 1
238
256
  end
239
257
 
240
258
  it "should contain the com visible information" do
241
- @filedata.should include("[assembly: ComVisible(#{@tester.com_visible})]")
242
- @filedata.should include("[assembly: Guid(\"#{@tester.com_guid}\")]")
259
+ @filedata.scan(%Q|[assembly: ComVisible(#{@tester.com_visible})]|).length.should == 1
260
+ @filedata.scan(%Q|[assembly: Guid("#{@tester.com_guid}")]|).length.should == 1
243
261
  end
244
262
 
245
263
  it "should contain the company name information" do
246
- @filedata.should include("[assembly: AssemblyCompany(\"#{@tester.company_name}\")]")
264
+ @filedata.scan(%Q|[assembly: AssemblyCompany("#{@tester.company_name}")]|).length.should == 1
247
265
  end
248
266
 
249
267
  it "should contain the product information" do
250
- @filedata.should include("[assembly: AssemblyProduct(\"#{@tester.product_name}\")]")
268
+ @filedata.scan(%Q|[assembly: AssemblyProduct("#{@tester.product_name}")]|).length.should == 1
251
269
  end
252
270
 
253
271
  it "should contain the file version information" do
254
- @filedata.should include("[assembly: AssemblyFileVersion(\"#{@tester.file_version}\")]")
272
+ @filedata.scan(%Q|[assembly: AssemblyFileVersion("#{@tester.file_version}")]|).length.should == 1
255
273
  end
256
274
 
257
275
  it "should contain the trademark information" do
258
- @filedata.should include("[assembly: AssemblyTrademark(\"#{@tester.trademark}\")]")
276
+ @filedata.scan(%Q|[assembly: AssemblyTrademark("#{@tester.trademark}")]|).length.should == 1
259
277
  end
260
278
  end
261
279
 
@@ -277,52 +295,54 @@ describe AssemblyInfo, "when generating an assembly info file with the built in
277
295
  asm.file_version = @tester.file_version
278
296
  asm.trademark = @tester.trademark
279
297
 
298
+ # Generate the same file twice.
299
+ @tester.build_and_read_assemblyinfo_file asm
280
300
  @filedata = @tester.build_and_read_assemblyinfo_file asm
281
301
  end
282
302
 
283
303
  it "should use the system.reflection namespace" do
284
- @filedata.should include("using System.Reflection;")
304
+ @filedata.scan('using System.Reflection;').length.should == 1
285
305
  end
286
306
 
287
307
  it "should use the system.runtime.interopservices namespace" do
288
- @filedata.should include("using System.Runtime.InteropServices;")
308
+ @filedata.scan('using System.Runtime.InteropServices;').length.should == 1
289
309
  end
290
310
 
291
311
  it "should contain the specified version information" do
292
- @filedata.should include("[assembly: AssemblyVersion(\"#{@tester.version}\")]")
312
+ @filedata.scan(%Q|[assembly: AssemblyVersion("#{@tester.version}")]|).length.should == 1
293
313
  end
294
314
 
295
315
  it "should contain the assembly title" do
296
- @filedata.should include("[assembly: AssemblyTitle(\"#{@tester.title}\")]")
316
+ @filedata.scan(%Q|[assembly: AssemblyTitle("#{@tester.title}")]|).length.should == 1
297
317
  end
298
318
 
299
319
  it "should contain the assembly description" do
300
- @filedata.should include("[assembly: AssemblyDescription(\"#{@tester.description}\")]")
320
+ @filedata.scan(%Q|[assembly: AssemblyDescription("#{@tester.description}")]|).length.should == 1
301
321
  end
302
322
 
303
323
  it "should contain the copyright information" do
304
- @filedata.should include("[assembly: AssemblyCopyright(\"#{@tester.copyright}\")]")
324
+ @filedata.scan(%Q|[assembly: AssemblyCopyright("#{@tester.copyright}")]|).length.should == 1
305
325
  end
306
326
 
307
327
  it "should contain the com visible information" do
308
- @filedata.should include("[assembly: ComVisible(#{@tester.com_visible})]")
309
- @filedata.should include("[assembly: Guid(\"#{@tester.com_guid}\")]")
328
+ @filedata.scan(%Q|[assembly: ComVisible(#{@tester.com_visible})]|).length.should == 1
329
+ @filedata.scan(%Q|[assembly: Guid("#{@tester.com_guid}")]|).length.should == 1
310
330
  end
311
331
 
312
332
  it "should contain the company name information" do
313
- @filedata.should include("[assembly: AssemblyCompany(\"#{@tester.company_name}\")]")
333
+ @filedata.scan(%Q|[assembly: AssemblyCompany("#{@tester.company_name}")]|).length.should == 1
314
334
  end
315
335
 
316
336
  it "should contain the product information" do
317
- @filedata.should include("[assembly: AssemblyProduct(\"#{@tester.product_name}\")]")
337
+ @filedata.scan(%Q|[assembly: AssemblyProduct("#{@tester.product_name}")]|).length.should == 1
318
338
  end
319
339
 
320
340
  it "should contain the file version information" do
321
- @filedata.should include("[assembly: AssemblyFileVersion(\"#{@tester.file_version}\")]")
341
+ @filedata.scan(%Q|[assembly: AssemblyFileVersion("#{@tester.file_version}")]|).length.should == 1
322
342
  end
323
343
 
324
344
  it "should contain the trademark information" do
325
- @filedata.should include("[assembly: AssemblyTrademark(\"#{@tester.trademark}\")]")
345
+ @filedata.scan(%Q|[assembly: AssemblyTrademark("#{@tester.trademark}")]|).length.should == 1
326
346
  end
327
347
  end
328
348
 
@@ -344,52 +364,54 @@ describe AssemblyInfo, "when generating an assembly info file with the built in
344
364
  asm.file_version = @tester.file_version
345
365
  asm.trademark = @tester.trademark
346
366
 
367
+ # Generate the same file twice.
368
+ @tester.build_and_read_assemblyinfo_file asm
347
369
  @filedata = @tester.build_and_read_assemblyinfo_file asm
348
370
  end
349
371
 
350
372
  it "should use the system.reflection namespace" do
351
- @filedata.should include("Imports System.Reflection")
373
+ @filedata.scan('Imports System.Reflection').length.should == 1
352
374
  end
353
375
 
354
376
  it "should use the system.runtime.interopservices namespace" do
355
- @filedata.should include("Imports System.Runtime.InteropServices")
377
+ @filedata.scan('Imports System.Runtime.InteropServices').length.should == 1
356
378
  end
357
379
 
358
380
  it "should contain the specified version information" do
359
- @filedata.should include("<assembly: AssemblyVersion(\"#{@tester.version}\")>")
381
+ @filedata.scan(%Q|<assembly: AssemblyVersion("#{@tester.version}")>|).length.should == 1
360
382
  end
361
383
 
362
384
  it "should contain the assembly title" do
363
- @filedata.should include("<assembly: AssemblyTitle(\"#{@tester.title}\")>")
385
+ @filedata.scan(%Q|<assembly: AssemblyTitle("#{@tester.title}")>|).length.should == 1
364
386
  end
365
387
 
366
388
  it "should contain the assembly description" do
367
- @filedata.should include("<assembly: AssemblyDescription(\"#{@tester.description}\")>")
389
+ @filedata.scan(%Q|<assembly: AssemblyDescription("#{@tester.description}")>|).length.should == 1
368
390
  end
369
391
 
370
392
  it "should contain the copyright information" do
371
- @filedata.should include("<assembly: AssemblyCopyright(\"#{@tester.copyright}\")>")
393
+ @filedata.scan(%Q|<assembly: AssemblyCopyright("#{@tester.copyright}")>|).length.should == 1
372
394
  end
373
395
 
374
396
  it "should contain the com visible information" do
375
- @filedata.should include("<assembly: ComVisible(#{@tester.com_visible})>")
376
- @filedata.should include("<assembly: Guid(\"#{@tester.com_guid}\")>")
397
+ @filedata.scan(%Q|<assembly: ComVisible(#{@tester.com_visible})>|).length.should == 1
398
+ @filedata.scan(%Q|<assembly: Guid("#{@tester.com_guid}")>|).length.should == 1
377
399
  end
378
400
 
379
401
  it "should contain the company name information" do
380
- @filedata.should include("<assembly: AssemblyCompany(\"#{@tester.company_name}\")>")
402
+ @filedata.scan(%Q|<assembly: AssemblyCompany("#{@tester.company_name}")>|).length.should == 1
381
403
  end
382
404
 
383
405
  it "should contain the product information" do
384
- @filedata.should include("<assembly: AssemblyProduct(\"#{@tester.product_name}\")>")
406
+ @filedata.scan(%Q|<assembly: AssemblyProduct("#{@tester.product_name}")>|).length.should == 1
385
407
  end
386
408
 
387
409
  it "should contain the file version information" do
388
- @filedata.should include("<assembly: AssemblyFileVersion(\"#{@tester.file_version}\")>")
410
+ @filedata.scan(%Q|<assembly: AssemblyFileVersion("#{@tester.file_version}")>|).length.should == 1
389
411
  end
390
412
 
391
413
  it "should contain the trademark information" do
392
- @filedata.should include("<assembly: AssemblyTrademark(\"#{@tester.trademark}\")>")
414
+ @filedata.scan(%Q|<assembly: AssemblyTrademark("#{@tester.trademark}")>|).length.should == 1
393
415
  end
394
416
  end
395
417
 
@@ -398,44 +420,46 @@ describe AssemblyInfo, "when generating an assembly info file with no attributes
398
420
  @tester = AssemblyInfoTester.new
399
421
  asm = AssemblyInfo.new
400
422
 
423
+ # Generate the same file twice.
424
+ @tester.build_and_read_assemblyinfo_file asm
401
425
  @filedata = @tester.build_and_read_assemblyinfo_file asm
402
426
  end
403
427
 
404
428
  it "should not contain the specified version information" do
405
- @filedata.should_not include("[assembly: AssemblyVersion(\"#{@tester.version}\")]")
429
+ @filedata.scan(%Q|[assembly: AssemblyVersion("#{@tester.version}")]|).should be_empty
406
430
  end
407
431
 
408
432
  it "should not contain the assembly title" do
409
- @filedata.should_not include("[assembly: AssemblyTitle(\"#{@tester.title}\")]")
433
+ @filedata.scan(%Q|[assembly: AssemblyTitle("#{@tester.title}")]|).should be_empty
410
434
  end
411
435
 
412
436
  it "should not contain the assembly description" do
413
- @filedata.should_not include("[assembly: AssemblyDescription(\"#{@tester.description}\")]")
437
+ @filedata.scan(%Q|[assembly: AssemblyDescription("#{@tester.description}")]|).should be_empty
414
438
  end
415
439
 
416
440
  it "should not contain the copyright information" do
417
- @filedata.should_not include("[assembly: AssemblyCopyright(\"#{@tester.copyright}\")]")
441
+ @filedata.scan(%Q|[assembly: AssemblyCopyright("#{@tester.copyright}")]|).should be_empty
418
442
  end
419
443
 
420
444
  it "should not contain the com visible information" do
421
- @filedata.should_not include("[assembly: ComVisible(#{@tester.com_visible})]")
422
- @filedata.should_not include("[assembly: Guid(\"#{@tester.com_guid}\")]")
445
+ @filedata.scan(%Q|[assembly: ComVisible(#{@tester.com_visible})]|).should be_empty
446
+ @filedata.scan(%Q|[assembly: Guid("#{@tester.com_guid}")]|).should be_empty
423
447
  end
424
448
 
425
449
  it "should not contain the company name information" do
426
- @filedata.should_not include("[assembly: AssemblyCompany(\"#{@tester.company_name}\")]")
450
+ @filedata.scan(%Q|[assembly: AssemblyCompany("#{@tester.company_name}")]|).should be_empty
427
451
  end
428
452
 
429
453
  it "should not contain the product information" do
430
- @filedata.should_not include("[assembly: AssemblyProduct(\"#{@tester.product_name}\")]")
454
+ @filedata.scan(%Q|[assembly: AssemblyProduct("#{@tester.product_name}")]|).should be_empty
431
455
  end
432
456
 
433
457
  it "should not contain the file version information" do
434
- @filedata.should_not include("[assembly: AssemblyFileVersion(\"#{@tester.file_version}\")]")
458
+ @filedata.scan(%Q|[assembly: AssemblyFileVersion("#{@tester.file_version}")]|).should be_empty
435
459
  end
436
460
 
437
461
  it "should not contain the trademark information" do
438
- @filedata.should_not include("[assembly: AssemblyTrademark(\"#{@tester.trademark}\")]")
462
+ @filedata.scan(%Q|[assembly: AssemblyTrademark("#{@tester.trademark}")]|).should be_empty
439
463
  end
440
464
  end
441
465
 
@@ -3,8 +3,20 @@ require 'albacore/support/albacore_helper'
3
3
  require 'fail_patch'
4
4
 
5
5
  class SampleObject
6
+ extend AttrMethods
6
7
  include Failure
7
8
  include YAMLConfig
9
+
10
+ attr_array :array
11
+ attr_hash :hash
12
+
13
+ def get_array
14
+ @array
15
+ end
16
+
17
+ def get_hash
18
+ @hash
19
+ end
8
20
  end
9
21
 
10
22
  describe "when defining a task" do
@@ -13,7 +25,9 @@ describe "when defining a task" do
13
25
  @sample_object.stub_method(:load_config_by_task_name){ |name|
14
26
  @task_name = name
15
27
  }
16
- create_task :sampletask, @sample_object do |obj|
28
+
29
+ task_object_proc = Proc.new { @sample_object }
30
+ create_task :sampletask, task_object_proc do |obj|
17
31
  @task_obj = obj
18
32
  end
19
33
 
@@ -39,7 +53,7 @@ end
39
53
 
40
54
  describe "when execution fails" do
41
55
  before :all do
42
- create_task :failing_task, SampleObject.new
56
+ create_task :failing_task, Proc.new { SampleObject.new }
43
57
 
44
58
  failing_task :sample_fail do |x|
45
59
  x.extend(FailPatch)
@@ -55,7 +69,7 @@ end
55
69
 
56
70
  describe "when task args are used" do
57
71
  before :all do
58
- create_task :task_with_args, SampleObject.new
72
+ create_task :task_with_args, Proc.new { SampleObject.new }
59
73
 
60
74
  task_with_args :sampletask_withargs, [:arg1] do |t, args|
61
75
  t.extend(FailPatch)
@@ -71,7 +85,7 @@ end
71
85
 
72
86
  describe "when calling a task method without providing a task name" do
73
87
  before :all do
74
- create_task :task_without_name, SampleObject.new
88
+ create_task :task_without_name, Proc.new { SampleObject.new }
75
89
 
76
90
  task_without_name do |t|
77
91
  @task_without_name_called = true
@@ -87,7 +101,7 @@ end
87
101
 
88
102
  describe "when calling a task method without providing a task parameter" do
89
103
  before :all do
90
- create_task :task_without_param, SampleObject.new
104
+ create_task :task_without_param, Proc.new { SampleObject.new }
91
105
 
92
106
  task_without_param do
93
107
  @task_without_param_called = true
@@ -104,7 +118,7 @@ end
104
118
  describe "when calling a task without a task definition block" do
105
119
 
106
120
  before :all do
107
- create_task :task_without_body, SampleObject.new
121
+ create_task :task_without_body, Proc.new { SampleObject.new }
108
122
 
109
123
  task_without_body
110
124
 
@@ -120,3 +134,39 @@ describe "when calling a task without a task definition block" do
120
134
  @failed.should be_false
121
135
  end
122
136
  end
137
+
138
+ describe "when creating two tasks and executing them" do
139
+ before :all do
140
+ create_task :multiple_instance_task, Proc.new { SampleObject.new } do |mi|
141
+ @array_values = mi.get_array
142
+ @hash_values = mi.get_hash
143
+ end
144
+
145
+ multiple_instance_task :multi_instance_1 do |mi|
146
+ mi.array 1, 2
147
+ mi.hash = { :a => :b, :c => :d }
148
+ @instance_1 = mi
149
+ end
150
+
151
+ multiple_instance_task :multi_instance_2 do |mi|
152
+ mi.array 3, 4
153
+ mi.hash = { :e => :f, :g => :h }
154
+ @instance_2 = mi
155
+ end
156
+
157
+ Rake::Task[:multi_instance_1].invoke
158
+ Rake::Task[:multi_instance_2].invoke
159
+ end
160
+
161
+ it "should specify the array values once per task" do
162
+ @array_values.should == [3, 4]
163
+ end
164
+
165
+ it "should specify the hash values once per task" do
166
+ @hash_values.should == { :e => :f, :g => :h }
167
+ end
168
+
169
+ it "should create two separate instances of the task object" do
170
+ @instance_1.object_id.should_not == @instance_2.object_id
171
+ end
172
+ end
@@ -0,0 +1,48 @@
1
+ require File.join(File.dirname(__FILE__), 'support', 'spec_helper')
2
+ require 'albacore/support/albacore_helper'
3
+ require 'system_patch'
4
+
5
+ class RunCommandObject
6
+ include YAMLConfig
7
+ include RunCommand
8
+
9
+ def execute
10
+ @require_valid_command = false
11
+ result = run_command "Run Command Test Object"
12
+ end
13
+ end
14
+
15
+ describe "when running two instances of a command line task" do
16
+ before :all do
17
+ create_task :run_command_task, Proc.new { RunCommandObject.new } do |ex|
18
+ ex.execute
19
+ end
20
+
21
+ run_command_task :one do |x|
22
+ x.extend(SystemPatch)
23
+ x.path_to_command = "set"
24
+ x.parameters "_albacore_test = test_one"
25
+ @one = x
26
+ end
27
+
28
+ run_command_task :two do |x|
29
+ x.extend(SystemPatch)
30
+ x.path_to_command = "set"
31
+ x.parameters "_another_albacore_test = test_two"
32
+ @two = x
33
+ end
34
+
35
+ Rake::Task[:one].invoke
36
+ Rake::Task[:two].invoke
37
+ end
38
+
39
+ it "should only pass the parameters specified to the first command" do
40
+ @one.system_command.should == "\"set\" _albacore_test = test_one"
41
+ end
42
+
43
+ it "should only pass the parameters specified to the second command" do
44
+ @two.system_command.should == "\"set\" _another_albacore_test = test_two"
45
+ end
46
+ end
47
+
48
+
@@ -0,0 +1 @@
1
+ --format specdoc
@@ -4,6 +4,8 @@ require 'albacore/xunittestrunner'
4
4
  @@xunitpath = File.join(File.dirname(__FILE__), 'support', 'Tools', 'XUnit-v1.5', 'xunit.console.exe')
5
5
  @@test_assembly = File.join(File.expand_path(File.dirname(__FILE__)), 'support', 'CodeCoverage', 'xunit', 'assemblies', 'TestSolution.XUnitTests.dll')
6
6
  @@output_option = "/out=xunit.results.html"
7
+ @@working_dir =File.join(File.dirname(__FILE__), 'support','xunit')
8
+ @@html_output = File.join(@@working_dir,'TestSolution.XUnitTests.dll.html')
7
9
 
8
10
  describe XUnitTestRunner, "the command parameters for an xunit runner" do
9
11
  before :all do
@@ -18,10 +20,6 @@ describe XUnitTestRunner, "the command parameters for an xunit runner" do
18
20
  @command_parameters.should_not include(@@xunitpath)
19
21
  end
20
22
 
21
- it "should include the list of assemblies" do
22
- @command_parameters.should include("\"#{@@test_assembly}\"")
23
- end
24
-
25
23
  it "should include the list of options" do
26
24
  @command_parameters.should include(@@output_option)
27
25
  end
@@ -46,13 +44,29 @@ describe XUnitTestRunner, "the command line string for an xunit runner" do
46
44
  end
47
45
  end
48
46
 
49
-
50
47
  describe XUnitTestRunner, "when configured correctly" do
51
48
  before :all do
52
49
  xunit = XUnitTestRunner.new(@@xunitpath)
53
50
  xunit.assembly = @@test_assembly
54
51
  xunit.options '/noshadow'
55
52
  xunit.extend(FailPatch)
53
+ xunit.log_level = :verbose
54
+
55
+ xunit.execute
56
+ end
57
+
58
+ it "should execute" do
59
+ $task_failed.should be_false
60
+ end
61
+ end
62
+
63
+ describe XUnitTestRunner, "when multiple assemblies are passed to xunit runner" do
64
+ before :all do
65
+ xunit = XUnitTestRunner.new(@@xunitpath)
66
+ xunit.assemblies = @@test_assembly, @@test_assembly
67
+ xunit.options '/noshadow'
68
+ xunit.extend(FailPatch)
69
+ xunit.log_level = :verbose
56
70
 
57
71
  xunit.execute
58
72
  end
@@ -60,4 +74,70 @@ describe XUnitTestRunner, "when configured correctly" do
60
74
  it "should execute" do
61
75
  $task_failed.should be_false
62
76
  end
63
- end
77
+ end
78
+
79
+ describe XUnitTestRunner, "when zero assemblies are passed to xunit runner" do
80
+ before :all do
81
+ xunit = XUnitTestRunner.new(@@xunitpath)
82
+ xunit.options '/noshadow'
83
+ xunit.extend(FailPatch)
84
+
85
+ xunit.execute
86
+ end
87
+
88
+ it "should fail" do
89
+ $task_failed.should be_true
90
+ end
91
+ end
92
+
93
+ describe XUnitTestRunner, "when html_output is specified" do
94
+ before :each do
95
+ FileUtils.mkdir @@working_dir
96
+ xunit = XUnitTestRunner.new(@@xunitpath)
97
+ xunit.assemblies = @@test_assembly
98
+ xunit.html_output = File.dirname(@@html_output)
99
+ xunit.extend(FailPatch)
100
+
101
+ xunit.execute
102
+ end
103
+
104
+ it "should execute" do
105
+ $task_failed.should be_false
106
+ end
107
+
108
+ it "should write output html" do
109
+ File.exist?(@@html_output).should be_true
110
+ end
111
+
112
+ after:each do
113
+ FileUtils.rm_r @@working_dir if File.exist? @@working_dir
114
+ end
115
+ end
116
+
117
+ describe XUnitTestRunner, "when html_output is not a directory" do
118
+ before :each do
119
+ FileUtils.mkdir @@working_dir
120
+ strio = StringIO.new
121
+ xunit = XUnitTestRunner.new(@@xunitpath)
122
+ xunit.log_level = :verbose
123
+ xunit.log_device = strio
124
+ xunit.assemblies = @@test_assembly
125
+ xunit.html_output = @@html_output
126
+ xunit.extend(FailPatch)
127
+
128
+ xunit.execute
129
+ @log_data = strio.string
130
+ end
131
+
132
+ it "should fail" do
133
+ $task_failed.should be_true
134
+ end
135
+
136
+ it "should log a message" do
137
+ @log_data.should include('Directory is required for html_output')
138
+ end
139
+
140
+ after:each do
141
+ FileUtils.rm_r @@working_dir if File.exist? @@working_dir
142
+ end
143
+ end
metadata CHANGED
@@ -5,17 +5,18 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 3
9
- version: 0.1.3
8
+ - 4
9
+ version: 0.1.4
10
10
  platform: ruby
11
11
  authors:
12
12
  - Derick Bailey
13
13
  - Ben Hall
14
+ - etc
14
15
  autorequire:
15
16
  bindir: bin
16
17
  cert_chain: []
17
18
 
18
- date: 2010-04-29 00:00:00 -05:00
19
+ date: 2010-05-06 00:00:00 -05:00
19
20
  default_executable:
20
21
  dependencies:
21
22
  - !ruby/object:Gem::Dependency
@@ -238,8 +239,10 @@ files:
238
239
  - spec/plink_spec.rb
239
240
  - spec/plinktask_spec.rb
240
241
  - spec/renametask_spec.rb
242
+ - spec/runcommand_spec.rb
241
243
  - spec/sftp_spec.rb
242
244
  - spec/sftptask_spec.rb
245
+ - spec/spec.opts
243
246
  - spec/sqlcmd_spec.rb
244
247
  - spec/sqlcmdtask_spec.rb
245
248
  - spec/ssh_spec.rb
@@ -371,6 +374,7 @@ test_files:
371
374
  - spec/plinktask_spec.rb
372
375
  - spec/plink_spec.rb
373
376
  - spec/renametask_spec.rb
377
+ - spec/runcommand_spec.rb
374
378
  - spec/sftptask_spec.rb
375
379
  - spec/sftp_spec.rb
376
380
  - spec/sqlcmdtask_spec.rb