infinity_test 0.2.0 → 1.0.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.
- data/.gitignore +3 -0
- data/.infinity_test +30 -2
- data/.rspec +2 -0
- data/.rvmrc +1 -1
- data/Gemfile +10 -2
- data/Gemfile.lock +52 -12
- data/History.markdown +86 -2
- data/LICENSE.txt +22 -0
- data/Rakefile +25 -9
- data/Readme.markdown +47 -23
- data/TODO.markdown +12 -0
- data/Tasks +2 -3
- data/VERSION.yml +2 -2
- data/bin/infinity_test +1 -1
- data/features/heuristics.feature +23 -0
- data/features/support/env.rb +2 -0
- data/images/fuuu/failure.png +0 -0
- data/images/fuuu/pending.png +0 -0
- data/images/fuuu/sucess.png +0 -0
- data/infinity_test.gemspec +62 -29
- data/lib/infinity_test.rb +29 -9
- data/lib/infinity_test/application.rb +222 -68
- data/lib/infinity_test/application_library/rails.rb +94 -0
- data/lib/infinity_test/application_library/rubygems.rb +43 -0
- data/lib/infinity_test/binary_path.rb +30 -8
- data/lib/infinity_test/builder.rb +56 -0
- data/lib/infinity_test/command.rb +18 -24
- data/lib/infinity_test/configuration.rb +96 -44
- data/lib/infinity_test/continuous_testing.rb +17 -39
- data/lib/infinity_test/dependencies.rb +76 -41
- data/lib/infinity_test/environment.rb +15 -0
- data/lib/infinity_test/heuristics.rb +36 -0
- data/lib/infinity_test/heuristics_helper.rb +9 -0
- data/lib/infinity_test/options.rb +56 -19
- data/lib/infinity_test/runner.rb +25 -17
- data/lib/infinity_test/test_framework.rb +109 -0
- data/lib/infinity_test/test_library/bacon.rb +55 -0
- data/lib/infinity_test/test_library/cucumber.rb +22 -0
- data/lib/infinity_test/test_library/rspec.rb +58 -0
- data/lib/infinity_test/test_library/test_unit.rb +46 -0
- data/spec/factories/company/Gemfile +0 -0
- data/spec/factories/infinity_test_example +2 -2
- data/spec/infinity_test/application_library/rails_spec.rb +140 -0
- data/spec/infinity_test/application_library/rubygems_spec.rb +52 -0
- data/spec/infinity_test/application_spec.rb +274 -50
- data/spec/infinity_test/binary_path_spec.rb +72 -0
- data/spec/infinity_test/builder_spec.rb +7 -0
- data/spec/infinity_test/command_spec.rb +13 -14
- data/spec/infinity_test/configuration_spec.rb +183 -57
- data/spec/infinity_test/continuous_testing_spec.rb +19 -1
- data/spec/infinity_test/environment_spec.rb +23 -0
- data/spec/infinity_test/heuristics_helper_spec.rb +15 -0
- data/spec/infinity_test/heuristics_spec.rb +127 -0
- data/spec/infinity_test/options_spec.rb +48 -26
- data/spec/infinity_test/runner_spec.rb +37 -29
- data/spec/infinity_test/test_framework_spec.rb +127 -0
- data/spec/infinity_test/test_library/bacon_spec.rb +150 -0
- data/spec/infinity_test/test_library/cucumber_spec.rb +8 -0
- data/spec/infinity_test/test_library/rspec_spec.rb +185 -0
- data/spec/infinity_test/test_library/test_unit_spec.rb +184 -0
- data/spec/infinity_test_spec.rb +23 -12
- data/spec/spec_helper.rb +86 -30
- metadata +62 -32
- data/lib/infinity_test/notifications/growl.rb +0 -15
- data/lib/infinity_test/notifications/lib_notify.rb +0 -11
- data/lib/infinity_test/rspec.rb +0 -87
- data/lib/infinity_test/test_unit.rb +0 -74
- data/spec/infinity_test/notifications/growl_spec.rb +0 -9
- data/spec/infinity_test/notifications/lib_notify_spec.rb +0 -9
- data/spec/infinity_test/rspec_spec.rb +0 -189
- data/spec/infinity_test/test_unit_spec.rb +0 -182
- data/spec/spec.opts +0 -1
@@ -0,0 +1,150 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module InfinityTest
|
4
|
+
module TestLibrary
|
5
|
+
describe Bacon do
|
6
|
+
let(:current_env) { RVM.current }
|
7
|
+
|
8
|
+
before do
|
9
|
+
@current_dir = Dir.pwd
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should be possible to set all rubies" do
|
13
|
+
Bacon.new(:rubies => '1.9.1').rubies.should be == '1.9.1'
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should set the rubies" do
|
17
|
+
Bacon.new(:rubies => 'jruby,ree').rubies.should be == 'jruby,ree'
|
18
|
+
end
|
19
|
+
|
20
|
+
it "rubies should be empty when not have rubies" do
|
21
|
+
Bacon.new.rubies.should be_empty
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'should set a default test pattern when have none' do
|
25
|
+
Bacon.new.test_pattern.should == 'spec/**/*_spec.rb'
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should return false for #pending method" do
|
29
|
+
Bacon.new.pending?.should be_false
|
30
|
+
end
|
31
|
+
|
32
|
+
describe '#test_files' do
|
33
|
+
|
34
|
+
let(:bacon) { Bacon.new }
|
35
|
+
|
36
|
+
it "return should include the spec files" do
|
37
|
+
Dir.chdir("#{@current_dir}/spec/factories/buzz") do
|
38
|
+
bacon.test_files.should be == "spec/buzz_spec.rb"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
it "return should include the spec files to test them" do
|
43
|
+
Dir.chdir("#{@current_dir}/spec/factories/wood") do
|
44
|
+
bacon.test_files.should be == "spec/wood_spec.rb"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
it "return should include the spec files to test them in two level of the spec folder" do
|
49
|
+
Dir.chdir("#{@current_dir}/spec/factories/slinky") do
|
50
|
+
bacon.test_files.should be == "spec/slinky/slinky_spec.rb"
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
|
56
|
+
describe '#decide_files' do
|
57
|
+
|
58
|
+
before { @bacon = Bacon.new }
|
59
|
+
|
60
|
+
it "should not call the spec file when match pattern" do
|
61
|
+
@bacon.should_not_receive(:test_files)
|
62
|
+
@bacon.decide_files('application_spec.rb')
|
63
|
+
end
|
64
|
+
|
65
|
+
it "should call the spec files when pattern is nil" do
|
66
|
+
@bacon.should_receive(:test_files)
|
67
|
+
@bacon.decide_files(nil)
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
71
|
+
|
72
|
+
describe '#handle_results' do
|
73
|
+
|
74
|
+
before do
|
75
|
+
@bacon = Bacon.new
|
76
|
+
end
|
77
|
+
|
78
|
+
it "should handle a example that succeed" do
|
79
|
+
results = "should be true\n\n2 specifications (2 requirements), 0 failures, 0 errors\n"
|
80
|
+
@bacon.parse_results(results)
|
81
|
+
@bacon.message.should == "2 specifications (2 requirements), 0 failures, 0 errors"
|
82
|
+
end
|
83
|
+
|
84
|
+
it "should parse without the terminal ansi color" do
|
85
|
+
results = "should be true\n\n3 specifications (2 requirements), 0 failures, 0 errors\n"
|
86
|
+
@bacon.parse_results(results)
|
87
|
+
@bacon.message.should == "3 specifications (2 requirements), 0 failures, 0 errors"
|
88
|
+
end
|
89
|
+
|
90
|
+
it "should handle a example that succeed and return false for failure?" do
|
91
|
+
results = "3 specifications (2 requirements), 0 failures, 0 errors"
|
92
|
+
@bacon.parse_results(results)
|
93
|
+
@bacon.failure?.should equal false
|
94
|
+
end
|
95
|
+
|
96
|
+
it "should parse without the terminal ansi color and grep the failure" do
|
97
|
+
results = "\n\e[33m3 specifications (2 requirements), 10 failures, 0 errors\e[0m\n"
|
98
|
+
@bacon.parse_results(results)
|
99
|
+
@bacon.failure?.should be_true
|
100
|
+
end
|
101
|
+
|
102
|
+
it "should parse bacon tests errors" do
|
103
|
+
results = "/Users/tomas/.rvm/gems/ruby-1.9.2@infinity_test/gems/my_class/bin/klass:2:in `require': no such file to load -- MyClass (LoadError)"
|
104
|
+
@bacon.parse_results(results)
|
105
|
+
@bacon.message.should == "An exception occurred"
|
106
|
+
end
|
107
|
+
|
108
|
+
it "should parse bacon tests errors" do
|
109
|
+
results = "/Users/tomas/.rvm/gems/ruby-1.9.2@infinity_test/gems/my_class/bin/klass:2:in `require': no such file to load -- MyClass (LoadError)"
|
110
|
+
@bacon.parse_results(results)
|
111
|
+
@bacon.failure?.should be_true
|
112
|
+
end
|
113
|
+
|
114
|
+
it "should parse bacon tests errors" do
|
115
|
+
results = "/Users/tomas/.rvm/gems/ruby-1.9.2@infinity_test/gems/my_class/bin/klass:2:in `require': no such file to load -- MyClass (LoadError)"
|
116
|
+
@bacon.parse_results(results)
|
117
|
+
@bacon.sucess?.should equal false
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
describe '#sucess?' do
|
122
|
+
before { @bacon = Bacon.new }
|
123
|
+
|
124
|
+
it "should return false when have failures" do
|
125
|
+
results = "3 specifications (3 requirements), 3 failures, 0 errors"
|
126
|
+
@bacon.parse_results(results)
|
127
|
+
@bacon.sucess?.should equal false
|
128
|
+
end
|
129
|
+
|
130
|
+
it "should return true when have zero failures and zero pending" do
|
131
|
+
results = "13 specifications (20 requirements), 0 failures, 0 errors"
|
132
|
+
@bacon.parse_results(results)
|
133
|
+
@bacon.sucess?.should be_true
|
134
|
+
end
|
135
|
+
|
136
|
+
end
|
137
|
+
|
138
|
+
describe '#search_bacon' do
|
139
|
+
# humm ... Bacon ... nhame nhame =]
|
140
|
+
|
141
|
+
it "should match bacon in the string" do
|
142
|
+
current_env.should_receive(:path_for).and_return('bacon')
|
143
|
+
Bacon.new.search_bacon(current_env).should match /bacon/
|
144
|
+
end
|
145
|
+
|
146
|
+
end
|
147
|
+
|
148
|
+
end
|
149
|
+
end
|
150
|
+
end
|
@@ -0,0 +1,185 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module InfinityTest
|
4
|
+
module TestLibrary
|
5
|
+
describe Rspec do
|
6
|
+
let(:rspec) { Rspec.new }
|
7
|
+
|
8
|
+
before do
|
9
|
+
@current_dir = Dir.pwd
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should be possible to set all rubies" do
|
13
|
+
Rspec.new(:rubies => '1.9.1').rubies.should be == '1.9.1'
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should set the rubies" do
|
17
|
+
Rspec.new(:rubies => 'jruby,ree').rubies.should be == 'jruby,ree'
|
18
|
+
end
|
19
|
+
|
20
|
+
it "rubies should be empty when not have rubies" do
|
21
|
+
Rspec.new.rubies.should be_empty
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'should set a default test pattern when have none' do
|
25
|
+
Rspec.new.test_pattern.should == 'spec/**/*_spec.rb'
|
26
|
+
end
|
27
|
+
|
28
|
+
describe '#test_files' do
|
29
|
+
|
30
|
+
it "return should include the spec files" do
|
31
|
+
buzz_library do
|
32
|
+
rspec.test_files.should be == "spec/buzz_spec.rb"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
it "return should include the spec files to test them" do
|
37
|
+
wood_library do
|
38
|
+
rspec.test_files.should be == "spec/wood_spec.rb"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
it "return should include the spec files to test them in two level of the spec folder" do
|
43
|
+
slinky_library do
|
44
|
+
rspec.test_files.should be == "spec/slinky/slinky_spec.rb"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
|
50
|
+
describe '#decide_files' do
|
51
|
+
|
52
|
+
before { @rspec = Rspec.new }
|
53
|
+
|
54
|
+
it "should not call the spec file when match pattern" do
|
55
|
+
@rspec.should_not_receive(:test_files)
|
56
|
+
@rspec.decide_files('application_spec.rb')
|
57
|
+
end
|
58
|
+
|
59
|
+
it "should call the spec files when pattern is nil" do
|
60
|
+
@rspec.should_receive(:test_files)
|
61
|
+
@rspec.decide_files(nil)
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
65
|
+
|
66
|
+
describe '#handle_results' do
|
67
|
+
|
68
|
+
before do
|
69
|
+
@rspec = Rspec.new
|
70
|
+
end
|
71
|
+
|
72
|
+
it "should handle a example that succeed" do
|
73
|
+
results = "........Finished in 0.299817 seconds\n\n105 examples, 0 failures, 0 pending\n"
|
74
|
+
@rspec.parse_results(results)
|
75
|
+
@rspec.message.should == "105 examples, 0 failures, 0 pending"
|
76
|
+
end
|
77
|
+
|
78
|
+
it "should parse without the terminal ansi color" do
|
79
|
+
results = "ork\e[0m\n\e[90m # No reason given\e[0m\n\e[90m # ./spec/infinity_test/configuration_spec.rb:31\e[0m\n\nFinished in 0.10487 seconds\n\e[33m406 examples, 5 failures, 2 pending\e[0m\n"
|
80
|
+
@rspec.parse_results(results)
|
81
|
+
@rspec.message.should == "406 examples, 5 failures, 2 pending"
|
82
|
+
end
|
83
|
+
|
84
|
+
it "should handle a example that succeed and return false for failure?" do
|
85
|
+
results = "........Finished in 0.299817 seconds\n\n105 examples, 0 failures, 0 pending\n"
|
86
|
+
@rspec.parse_results(results)
|
87
|
+
@rspec.failure?.should equal false
|
88
|
+
end
|
89
|
+
|
90
|
+
it "should parse without the terminal ansi color and grep the failure" do
|
91
|
+
results = "ork\e[0m\n\e[90m # No reason given\e[0m\n\e[90m # ./spec/infinity_test/configuration_spec.rb:31\e[0m\n\nFinished in 0.10487 seconds\n\e[33m406 examples, 5 failures, 2 pending\e[0m\n"
|
92
|
+
@rspec.parse_results(results)
|
93
|
+
@rspec.failure?.should be_true
|
94
|
+
end
|
95
|
+
|
96
|
+
it "should parse without the terminal ansi color and grep the pending" do
|
97
|
+
results = "ork\e[0m\n\e[90m # No reason given\e[0m\n\e[90m # ./spec/infinity_test/configuration_spec.rb:31\e[0m\n\nFinished in 0.10487 seconds\n\e[33m406 examples, 0 failures, 2 pending\e[0m\n"
|
98
|
+
@rspec.parse_results(results)
|
99
|
+
@rspec.pending?.should be_true
|
100
|
+
end
|
101
|
+
|
102
|
+
it "should parse rspec tests errors" do
|
103
|
+
results = "/Users/tomas/.rvm/gems/ruby-1.9.2@infinity_test/gems/my_class/bin/klass:2:in `require': no such file to load -- MyClass (LoadError)"
|
104
|
+
@rspec.parse_results(results)
|
105
|
+
@rspec.message.should == "An exception occurred"
|
106
|
+
end
|
107
|
+
|
108
|
+
it "should parse rspec tests errors" do
|
109
|
+
results = "/Users/tomas/.rvm/gems/ruby-1.9.2@infinity_test/gems/my_class/bin/klass:2:in `require': no such file to load -- MyClass (LoadError)"
|
110
|
+
@rspec.parse_results(results)
|
111
|
+
@rspec.failure?.should be_true
|
112
|
+
end
|
113
|
+
|
114
|
+
it "should parse rspec tests errors" do
|
115
|
+
results = "/Users/tomas/.rvm/gems/ruby-1.9.2@infinity_test/gems/my_class/bin/klass:2:in `require': no such file to load -- MyClass (LoadError)"
|
116
|
+
@rspec.parse_results(results)
|
117
|
+
@rspec.sucess?.should equal false
|
118
|
+
end
|
119
|
+
|
120
|
+
it "should parse rspec tests errors" do
|
121
|
+
results = "/Users/tomas/.rvm/gems/ruby-1.9.2@infinity_test/gems/my_class/bin/klass:2:in `require': no such file to load -- MyClass (LoadError)"
|
122
|
+
@rspec.parse_results(results)
|
123
|
+
@rspec.pending?.should equal false
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
describe '#sucess?' do
|
128
|
+
before { @rspec = Rspec.new }
|
129
|
+
|
130
|
+
it "should return false when have failures" do
|
131
|
+
results = "ork\e[0m\n\e[90m # No reason given\e[0m\n\e[90m # ./spec/infinity_test/configuration_spec.rb:31\e[0m\n\nFinished in 0.10487 seconds\n\e[33m406 examples, 5 failures, 2 pending\e[0m\n"
|
132
|
+
@rspec.parse_results(results)
|
133
|
+
@rspec.sucess?.should equal false
|
134
|
+
end
|
135
|
+
|
136
|
+
it "should return false when have pending" do
|
137
|
+
results = "ork\e[0m\n\e[90m # No reason given\e[0m\n\e[90m # ./spec/infinity_test/configuration_spec.rb:31\e[0m\n\nFinished in 0.10487 seconds\n\e[33m806 examples, 0 failures, 2 pending\e[0m\n"
|
138
|
+
@rspec.parse_results(results)
|
139
|
+
@rspec.sucess?.should be_false
|
140
|
+
end
|
141
|
+
|
142
|
+
it "should return true when have zero failures and zero pending" do
|
143
|
+
results = "........Finished in 0.299817 seconds\n\n105 examples, 0 failures, 0 pending\n"
|
144
|
+
@rspec.parse_results(results)
|
145
|
+
@rspec.sucess?.should be_true
|
146
|
+
end
|
147
|
+
|
148
|
+
end
|
149
|
+
|
150
|
+
describe '#pending?' do
|
151
|
+
let(:rspec) { Rspec.new }
|
152
|
+
|
153
|
+
it "should return true when have pending" do
|
154
|
+
rspec.pending = 1
|
155
|
+
rspec.failures = 0
|
156
|
+
rspec.pending?.should be_true
|
157
|
+
end
|
158
|
+
|
159
|
+
it "should return false when have pending bu thave failures" do
|
160
|
+
rspec.pending = 1
|
161
|
+
rspec.failures = 1
|
162
|
+
rspec.pending?.should equal false
|
163
|
+
end
|
164
|
+
|
165
|
+
end
|
166
|
+
|
167
|
+
describe '#search_files' do
|
168
|
+
|
169
|
+
it "should return all the files the match the pattern" do
|
170
|
+
wood_library do
|
171
|
+
rspec.search_files('wood').should be == "spec/wood_spec.rb"
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
175
|
+
it "should return the files match by the pattern" do
|
176
|
+
buzz_library do
|
177
|
+
rspec.search_files('buzz').should be == 'spec/buzz_spec.rb'
|
178
|
+
end
|
179
|
+
end
|
180
|
+
|
181
|
+
end
|
182
|
+
|
183
|
+
end
|
184
|
+
end
|
185
|
+
end
|
@@ -0,0 +1,184 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module InfinityTest
|
4
|
+
module TestLibrary
|
5
|
+
describe TestUnit do
|
6
|
+
|
7
|
+
before(:each) do
|
8
|
+
@current_dir = Dir.pwd
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should be possible to set all rubies" do
|
12
|
+
TestUnit.new(:rubies => 'jruby').rubies.should be == 'jruby'
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should be possible to set any rubies that I want" do
|
16
|
+
TestUnit.new(:rubies => 'ree,1.9.1,1.9.2').rubies.should be == 'ree,1.9.1,1.9.2'
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should be empty when not have rubies" do
|
20
|
+
TestUnit.new.rubies.should be == []
|
21
|
+
end
|
22
|
+
|
23
|
+
describe "#test_loader" do
|
24
|
+
let(:test_unit) { TestUnit.new }
|
25
|
+
it "should call files to test with test_loader" do
|
26
|
+
Dir.chdir("#{@current_dir}/spec/factories/travel") do
|
27
|
+
test_unit.test_loader.should eql "#{@current_dir}/lib/infinity_test/test_unit_loader.rb"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
context "should call more than one file to test with test_loader" do
|
32
|
+
|
33
|
+
it "return should include test/company_test.rb" do
|
34
|
+
Dir.chdir("#{@current_dir}/spec/factories/company") do
|
35
|
+
test_unit.all_files.should eql ["test/company_test.rb"]
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
it "return should include more than one file to test" do
|
40
|
+
Dir.chdir("#{@current_dir}/spec/factories/travel") do
|
41
|
+
test_unit.all_files.should eql ["test/partner_test.rb","test/travel_test.rb"]
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should include all the tests file" do
|
46
|
+
Dir.chdir("#{@current_dir}/spec/factories/travel") do
|
47
|
+
test_unit.test_files.should include "test/partner_test.rb test/travel_test.rb"
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
it "should include test loader" do
|
52
|
+
Dir.chdir("#{@current_dir}/spec/factories/travel") do
|
53
|
+
test_unit.test_files.should include "#{@current_dir}/lib/infinity_test/test_unit_loader.rb"
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
describe '#parse_results' do
|
61
|
+
|
62
|
+
before do
|
63
|
+
@test_unit = TestUnit.new
|
64
|
+
end
|
65
|
+
|
66
|
+
it "should parse when have all passed" do
|
67
|
+
results = ".....\n3 tests, 3 assertions, 0 failures, 0 errors, 0 skips"
|
68
|
+
@test_unit.parse_results(results)
|
69
|
+
@test_unit.message.should == "3 tests, 3 assertions, 0 failures, 0 errors, 0 skips"
|
70
|
+
end
|
71
|
+
|
72
|
+
it "should parse when have extra message (in Ruby 1.9.*)" do
|
73
|
+
results = "\nFinished in 0.001742 seconds.\n\n3 tests, 3 assertions, 1 failures, 1 errors, 1 skips\n\nTest run options: --seed 18841\n"
|
74
|
+
@test_unit.parse_results(results)
|
75
|
+
@test_unit.message.should == "3 tests, 3 assertions, 1 failures, 1 errors, 1 skips"
|
76
|
+
end
|
77
|
+
|
78
|
+
it "should parse when have a exception" do
|
79
|
+
@test_unit.parse_results("")
|
80
|
+
@test_unit.message.should == "An exception occurred"
|
81
|
+
end
|
82
|
+
|
83
|
+
it "should parse and set correctly the tests" do
|
84
|
+
results = "\nFinished in 0.8981 seconds.\n\n3 tests, 3 assertions, 1 failures, 1 errors, 1 skips\n\nTest run options: --seed 18841\n"
|
85
|
+
@test_unit.parse_results(results)
|
86
|
+
@test_unit.tests.should == 3
|
87
|
+
end
|
88
|
+
|
89
|
+
it "should parse and set correctly the tests" do
|
90
|
+
results = "\nFinished in 0.5678 seconds.\n\n6 tests, 3 assertions, 1 failures, 1 errors, 1 skips\n\nTest run options: --seed 18841\n"
|
91
|
+
@test_unit.parse_results(results)
|
92
|
+
@test_unit.tests.should == 6
|
93
|
+
end
|
94
|
+
|
95
|
+
it "should parse and set correctly the tests" do
|
96
|
+
results = "\nFinished in 0.34678 seconds.\n\n6 tests, 7 assertions, 1 failures, 1 errors, 1 skips\n\nTest run options: --seed 18841\n"
|
97
|
+
@test_unit.parse_results(results)
|
98
|
+
@test_unit.assertions.should == 7
|
99
|
+
end
|
100
|
+
|
101
|
+
it "should parse and set correctly the tests" do
|
102
|
+
results = "\nFinished in 0.8561 seconds.\n\n3 tests, 4 assertions, 1 failures, 1 errors, 1 skips\n\nTest run options: --seed 18841\n"
|
103
|
+
@test_unit.parse_results(results)
|
104
|
+
@test_unit.assertions.should == 4
|
105
|
+
end
|
106
|
+
|
107
|
+
it "should parse and set correctly the tests" do
|
108
|
+
results = "\nFinished in 0.7654 seconds.\n\n6 tests, 3 assertions, 4 failures, 1 errors, 1 skips\n\nTest run options: --seed 18841\n"
|
109
|
+
@test_unit.parse_results(results)
|
110
|
+
@test_unit.failures.should == 4
|
111
|
+
end
|
112
|
+
|
113
|
+
it "should parse and set correctly the tests" do
|
114
|
+
results = "\nFinished in 0.789065 seconds.\n\n6 tests, 3 assertions, 5 failures, 1 errors, 1 skips\n\nTest run options: --seed 18841\n"
|
115
|
+
@test_unit.parse_results(results)
|
116
|
+
@test_unit.failures.should == 5
|
117
|
+
end
|
118
|
+
|
119
|
+
it "should parse and set correctly the tests" do
|
120
|
+
results = "\nFinished in 0.7654 seconds.\n\n6 tests, 3 assertions, 4 failures, 2 errors, 1 skips\n\nTest run options: --seed 18841\n"
|
121
|
+
@test_unit.parse_results(results)
|
122
|
+
@test_unit.errors.should == 2
|
123
|
+
end
|
124
|
+
|
125
|
+
it "should parse and set correctly the tests" do
|
126
|
+
results = "\nFinished in 0.7654 seconds.\n\n36 tests, 37 assertions, 4 failures, 20 errors, 1 skips\n\nTest run options: --seed 18841\n"
|
127
|
+
@test_unit.parse_results(results)
|
128
|
+
@test_unit.errors.should == 20
|
129
|
+
end
|
130
|
+
|
131
|
+
it "should parse when have a exception and set failure to 1" do
|
132
|
+
@test_unit.parse_results("")
|
133
|
+
@test_unit.failures.should == 1
|
134
|
+
@test_unit.tests.should == 1
|
135
|
+
@test_unit.assertions.should == 1
|
136
|
+
@test_unit.errors.should == 1
|
137
|
+
end
|
138
|
+
|
139
|
+
end
|
140
|
+
|
141
|
+
describe '#failure?' do
|
142
|
+
|
143
|
+
before do
|
144
|
+
@test_unit = TestUnit.new
|
145
|
+
end
|
146
|
+
|
147
|
+
it "should return true when have failures" do
|
148
|
+
@test_unit.parse_results(".....\n3 tests, 3 assertions, 1 failures, 0 errors, 0 skips")
|
149
|
+
@test_unit.failure?.should be_true
|
150
|
+
end
|
151
|
+
|
152
|
+
it "should return true when have errors" do
|
153
|
+
@test_unit.parse_results(".....\n3 tests, 3 assertions, 0 failures, 4 errors, 0 skips")
|
154
|
+
@test_unit.failure?.should be_true
|
155
|
+
end
|
156
|
+
|
157
|
+
it "should return true when have nothing" do
|
158
|
+
@test_unit.parse_results("")
|
159
|
+
@test_unit.failure?.should be_true
|
160
|
+
end
|
161
|
+
|
162
|
+
it "should return false when have all suceed :) " do
|
163
|
+
@test_unit.parse_results(".....\n3 tests, 3 assertions, 0 failures, 0 errors, 0 skips")
|
164
|
+
@test_unit.failure?.should be_false
|
165
|
+
end
|
166
|
+
|
167
|
+
it 'should return false when have all assertions and tests suceed \o/ ' do
|
168
|
+
@test_unit.parse_results(".....\n4 tests, 7 assertions, 0 failures, 0 errors, 0 skips")
|
169
|
+
@test_unit.failure?.should be_false
|
170
|
+
end
|
171
|
+
|
172
|
+
end
|
173
|
+
|
174
|
+
describe '#pending?' do
|
175
|
+
|
176
|
+
it "should be false" do
|
177
|
+
TestUnit.new.pending?.should equal false
|
178
|
+
end
|
179
|
+
|
180
|
+
end
|
181
|
+
|
182
|
+
end
|
183
|
+
end
|
184
|
+
end
|