infinity_test 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +10 -0
- data/.infinity_test +8 -0
- data/.rspec +1 -0
- data/.rvmrc +1 -0
- data/Gemfile +11 -0
- data/Rakefile +49 -0
- data/Readme.markdown +92 -0
- data/Tasks +5 -0
- data/VERSION.yml +5 -0
- data/bin/infinity_test +7 -0
- data/buzz_images/buzz_lightyear.jpg +0 -0
- data/buzz_images/buzz_lightyear_continencia.gif +0 -0
- data/buzz_images/to_infinity_and_beyond.png +0 -0
- data/features/infinity_test.feature +36 -0
- data/features/support/env.rb +1 -0
- data/images/faces/failure.png +0 -0
- data/images/faces/pending.png +0 -0
- data/images/faces/sucess.png +0 -0
- data/images/hands/failure.png +0 -0
- data/images/hands/pending.png +0 -0
- data/images/hands/sucess.png +0 -0
- data/images/mario_bros/failure.jpg +0 -0
- data/images/mario_bros/pending.jpg +0 -0
- data/images/mario_bros/sucess.jpg +0 -0
- data/images/rails/failure.png +0 -0
- data/images/rails/pending.png +0 -0
- data/images/rails/sucess.png +0 -0
- data/images/rubies/failure.png +0 -0
- data/images/rubies/pending.png +0 -0
- data/images/rubies/sucess.png +0 -0
- data/images/simpson/failure.gif +0 -0
- data/images/simpson/pending.jpg +0 -0
- data/images/simpson/sucess.jpg +0 -0
- data/images/street_fighter/failure.gif +0 -0
- data/images/street_fighter/pending.gif +0 -0
- data/images/street_fighter/sucess.jpg +0 -0
- data/images/toy_story/failure.gif +0 -0
- data/images/toy_story/pending.png +0 -0
- data/images/toy_story/sucess.png +0 -0
- data/infinity_test.gemspec +168 -0
- data/lib/infinity_test.rb +31 -0
- data/lib/infinity_test/application.rb +168 -0
- data/lib/infinity_test/binary_path.rb +21 -0
- data/lib/infinity_test/command.rb +57 -0
- data/lib/infinity_test/configuration.rb +157 -0
- data/lib/infinity_test/continuous_testing.rb +62 -0
- data/lib/infinity_test/dependencies.rb +45 -0
- data/lib/infinity_test/notifications/growl.rb +15 -0
- data/lib/infinity_test/notifications/lib_notify.rb +11 -0
- data/lib/infinity_test/options.rb +52 -0
- data/lib/infinity_test/rspec.rb +87 -0
- data/lib/infinity_test/runner.rb +30 -0
- data/lib/infinity_test/test_unit.rb +74 -0
- data/lib/infinity_test/test_unit_loader.rb +5 -0
- data/spec/factories/buzz/lib/buzz.rb +0 -0
- data/spec/factories/buzz/spec/buzz_spec.rb +0 -0
- data/spec/factories/company/lib/company.rb +0 -0
- data/spec/factories/company/test/company_test.rb +0 -0
- data/spec/factories/images/failure.png +0 -0
- data/spec/factories/images/pending.png +0 -0
- data/spec/factories/images/sucess.png +0 -0
- data/spec/factories/infinity_test +5 -0
- data/spec/factories/infinity_test_example +7 -0
- data/spec/factories/slinky/spec/slinky/slinky_spec.rb +0 -0
- data/spec/factories/travel/lib/travel.rb +0 -0
- data/spec/factories/travel/test/partner_test.rb +0 -0
- data/spec/factories/travel/test/travel_test.rb +0 -0
- data/spec/factories/wood/lib/wood.rb +0 -0
- data/spec/factories/wood/spec/wood_spec.rb +0 -0
- data/spec/infinity_test/application_spec.rb +149 -0
- data/spec/infinity_test/command_spec.rb +47 -0
- data/spec/infinity_test/configuration_spec.rb +196 -0
- data/spec/infinity_test/continuous_testing_spec.rb +7 -0
- data/spec/infinity_test/notifications/growl_spec.rb +9 -0
- data/spec/infinity_test/notifications/lib_notify_spec.rb +9 -0
- data/spec/infinity_test/options_spec.rb +69 -0
- data/spec/infinity_test/rspec_spec.rb +189 -0
- data/spec/infinity_test/runner_spec.rb +34 -0
- data/spec/infinity_test/test_unit_spec.rb +182 -0
- data/spec/infinity_test_spec.rb +29 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +67 -0
- metadata +226 -0
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module InfinityTest
|
4
|
+
describe Command do
|
5
|
+
|
6
|
+
it "should pass the ruby version and set" do
|
7
|
+
Command.new(:ruby_version => '1.9.2').ruby_version.should == '1.9.2'
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should pass the ruby version and set" do
|
11
|
+
Command.new(:ruby_version => 'JRuby 1.3.5').ruby_version.should == 'JRuby 1.3.5'
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should create and set the command" do
|
15
|
+
Command.new(:command => 'rspec spec').command.should == 'rspec spec'
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should create and set the command for ruby version" do
|
19
|
+
Command.new(:command => 'spec spec').command.should == 'spec spec'
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should have the results as Array" do
|
23
|
+
Command.new.results.should be_instance_of(Array)
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should have the line variable as Array" do
|
27
|
+
Command.new.line.should be_instance_of(Array)
|
28
|
+
end
|
29
|
+
|
30
|
+
describe '#push_in_the_results' do
|
31
|
+
|
32
|
+
before do
|
33
|
+
@command = Command.new
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should parse correct the results when have in the ree" do
|
37
|
+
@command.line = [27, 91, 51, 51, 109, 49, 50, 49, 32, 101, 120, 97, 109, 112, 108, 101, 115, 44, 32, 48, 32, 102, 97, 105, 108, 117, 114, 101, 115, 44, 32, 50, 32, 112, 101, 110, 100, 105, 110, 103, 27, 91, 48, 109, 10]
|
38
|
+
@command.should_receive(:ree?).and_return(true)
|
39
|
+
@command.push_in_the_results(?\n)
|
40
|
+
@command.results.should == ["\e[33m121 examples, 0 failures, 2 pending\e[0m\n"]
|
41
|
+
end
|
42
|
+
|
43
|
+
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,196 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module InfinityTest
|
4
|
+
describe Configuration do
|
5
|
+
before { @config = Configuration.new }
|
6
|
+
let(:config) { @config }
|
7
|
+
|
8
|
+
describe '#initialize' do
|
9
|
+
|
10
|
+
it "should set the test_unit as default test framework" do
|
11
|
+
Configuration.new.test_framework.should equal :test_unit
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
describe '#infinity_test' do
|
17
|
+
|
18
|
+
it "Infinity test Dsl of config file should yield in the Configuration scope" do
|
19
|
+
infinity_test do
|
20
|
+
use
|
21
|
+
end.class.should equal Configuration
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
describe '#notifications' do
|
27
|
+
|
28
|
+
it "should possible to set the growl notification framework" do
|
29
|
+
config.notifications :growl
|
30
|
+
config.notification_framework.should equal :growl
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should possible to set the lib notify notification framework" do
|
34
|
+
config.notifications :lib_notify
|
35
|
+
config.notification_framework.should equal :lib_notify
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should not possible to set another notification framework" do
|
39
|
+
lambda { config.notifications(:dont_exist) }.should raise_exception(NotificationFrameworkDontSupported, "Notification :dont_exist don't supported. The Frameworks supported are: growl,lib_notify")
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should raise exception for non supported notification framework" do
|
43
|
+
lambda { config.notifications(:snarfff) }.should raise_exception(NotificationFrameworkDontSupported, "Notification :snarfff don't supported. The Frameworks supported are: growl,lib_notify")
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
|
48
|
+
describe '#use' do
|
49
|
+
|
50
|
+
it "should set the rvm versions" do
|
51
|
+
config.use :rubies => '1.8.7-p249'
|
52
|
+
config.rubies.should be == '1.8.7-p249'
|
53
|
+
end
|
54
|
+
|
55
|
+
it "should set many ruby versions" do
|
56
|
+
config.use :rubies => ['1.9.1', '1.9.2']
|
57
|
+
config.rubies.should be == '1.9.1,1.9.2'
|
58
|
+
end
|
59
|
+
|
60
|
+
it "should set the gemset and change all rubies" do
|
61
|
+
config.use :rubies => ['1.9.1', '1.9.2'], :gemset => 'infinity_test'
|
62
|
+
config.rubies.should be == '1.9.1@infinity_test,1.9.2@infinity_test'
|
63
|
+
end
|
64
|
+
|
65
|
+
it "should set the gemset and change all rubies" do
|
66
|
+
config.use :rubies => ['1.9.1', '1.9.2'], :gemset => 'other_gemset'
|
67
|
+
config.rubies.should be == '1.9.1@other_gemset,1.9.2@other_gemset'
|
68
|
+
end
|
69
|
+
|
70
|
+
it "should set the test unit when not set the test framework" do
|
71
|
+
config.use
|
72
|
+
config.test_framework.should equal :test_unit
|
73
|
+
end
|
74
|
+
|
75
|
+
it "should return the test framework" do
|
76
|
+
config.use :test_framework => :rspec
|
77
|
+
config.test_framework.should equal :rspec
|
78
|
+
end
|
79
|
+
|
80
|
+
it "should possible to set the test unit for test framework" do
|
81
|
+
config.use :test_framework => :test_unit
|
82
|
+
config.test_framework.should equal :test_unit
|
83
|
+
end
|
84
|
+
|
85
|
+
it "should set the verbose option" do
|
86
|
+
config.use :verbose => true
|
87
|
+
config.verbose.should be_true
|
88
|
+
end
|
89
|
+
|
90
|
+
it "should set to false as default" do
|
91
|
+
config.verbose.should equal false
|
92
|
+
end
|
93
|
+
|
94
|
+
end
|
95
|
+
|
96
|
+
describe '#ignore' do
|
97
|
+
|
98
|
+
it "should be empty when not have dir/files to ignore" do
|
99
|
+
config.ignore
|
100
|
+
config.exceptions_to_ignore.should be == []
|
101
|
+
end
|
102
|
+
|
103
|
+
it "should set the exception to ignore" do
|
104
|
+
config.ignore :exceptions => %w(.svn)
|
105
|
+
config.exceptions_to_ignore.should be == %w(.svn)
|
106
|
+
end
|
107
|
+
|
108
|
+
it "should set the exceptions to ignore changes" do
|
109
|
+
config.ignore :exceptions => %w(.svn .hg .git vendor tmp config rerun.txt)
|
110
|
+
config.exceptions_to_ignore.should be == %w(.svn .hg .git vendor tmp config rerun.txt)
|
111
|
+
end
|
112
|
+
|
113
|
+
end
|
114
|
+
|
115
|
+
describe '#show_images' do
|
116
|
+
|
117
|
+
before { @config = Configuration.new }
|
118
|
+
|
119
|
+
it "should have a default success image" do
|
120
|
+
@config.notifications :growl
|
121
|
+
@config.show_images :sucess => :default
|
122
|
+
@config.sucess_image.should == image('simpson/sucess.jpg')
|
123
|
+
end
|
124
|
+
|
125
|
+
it "should be possible to customize success image" do
|
126
|
+
@config.notifications :growl
|
127
|
+
@config.show_images :sucess => image('other.png')
|
128
|
+
@config.sucess_image.should == image('other.png')
|
129
|
+
end
|
130
|
+
|
131
|
+
it "should have a default failure image" do
|
132
|
+
@config.notifications :growl
|
133
|
+
@config.show_images :failure => :default
|
134
|
+
@config.failure_image.should == image('simpson/failure.gif')
|
135
|
+
end
|
136
|
+
|
137
|
+
it "should be possible to customize failure image" do
|
138
|
+
@config.notifications :growl
|
139
|
+
@config.show_images :failure => image('failure_picture.png')
|
140
|
+
@config.failure_image.should == image('failure_picture.png')
|
141
|
+
end
|
142
|
+
|
143
|
+
it "should have a default failure image" do
|
144
|
+
@config.notifications :growl
|
145
|
+
@config.show_images :pending => :default
|
146
|
+
@config.pending_image.should == image('simpson/pending.jpg')
|
147
|
+
end
|
148
|
+
|
149
|
+
it "should be possible to customize failure image" do
|
150
|
+
@config.notifications :growl
|
151
|
+
@config.show_images :pending => image('pending_picture.png')
|
152
|
+
@config.pending_image.should == image('pending_picture.png')
|
153
|
+
end
|
154
|
+
|
155
|
+
it "should possible to change the dir of images" do
|
156
|
+
@config.notifications :growl
|
157
|
+
@config.show_images :mode => :street_fighter
|
158
|
+
@config.pending_image.should == image('street_fighter/pending.gif')
|
159
|
+
end
|
160
|
+
|
161
|
+
it "should possible to change the dir of the images" do
|
162
|
+
@config.notifications :growl
|
163
|
+
@config.show_images :mode => :street_fighter
|
164
|
+
@config.sucess_image.should == image('street_fighter/sucess.jpg')
|
165
|
+
end
|
166
|
+
|
167
|
+
it "should possible to change the dir of the images" do
|
168
|
+
@config.notifications :growl
|
169
|
+
@config.show_images :mode => custom_image_dir
|
170
|
+
@config.sucess_image.should == custom_image('images/sucess.png')
|
171
|
+
end
|
172
|
+
|
173
|
+
end
|
174
|
+
|
175
|
+
describe '#before_run' do
|
176
|
+
|
177
|
+
it "should persist the proc object in the before callback" do
|
178
|
+
proc = Proc.new { 'To Infinity and beyond!' }
|
179
|
+
config.before_run(&proc)
|
180
|
+
config.before_callback.should be == proc
|
181
|
+
end
|
182
|
+
|
183
|
+
end
|
184
|
+
|
185
|
+
describe '#after_run' do
|
186
|
+
|
187
|
+
it "should persist the proc object in the after callback" do
|
188
|
+
proc = Proc.new { 'To Infinity and beyond!' }
|
189
|
+
config.after_run(&proc)
|
190
|
+
config.after_callback.should be == proc
|
191
|
+
end
|
192
|
+
|
193
|
+
end
|
194
|
+
|
195
|
+
end
|
196
|
+
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module InfinityTest
|
4
|
+
describe Options do
|
5
|
+
|
6
|
+
context "when parsing" do
|
7
|
+
|
8
|
+
it "should parse --rspec and return rspec" do
|
9
|
+
parse_options('--rspec')
|
10
|
+
@options[:test_framework].should equal :rspec
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should not return rspec as test framework when not parse rspec" do
|
14
|
+
parse_options('--test-unit')
|
15
|
+
@options[:test_framework].should_not equal :rspec
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should parse --test-unit and return test_unit" do
|
19
|
+
parse_options('--test-unit')
|
20
|
+
@options[:test_framework].should equal :test_unit
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should not parse --test-unit" do
|
24
|
+
parse_options('--rspec')
|
25
|
+
@options[:test_framework].should_not equal :test_unit
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should parse --rvm-versions and return an array" do
|
29
|
+
parse_options('--rubies=1.8.6,1.8.7')
|
30
|
+
@options[:rubies].should eql '1.8.6,1.8.7'
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should parse --rvm-versions with dashes" do
|
34
|
+
parse_options('--rubies=1.8.7-p249,1.9.1-p378')
|
35
|
+
@options[:rubies].should eql '1.8.7-p249,1.9.1-p378'
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should parse --verbose" do
|
39
|
+
parse_options('--verbose')
|
40
|
+
@options[:verbose].should be_true
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
describe "#rspec?" do
|
46
|
+
|
47
|
+
it "should return true if using rspec" do
|
48
|
+
parse_options('--rspec')
|
49
|
+
@options.rspec?.should be_true
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should explicity return false if not using rspec" do
|
53
|
+
parse_options('--test-unit')
|
54
|
+
@options.rspec?.should be_false
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should not return nil when not using rspec" do
|
58
|
+
parse_options('--rubies=1.8.6')
|
59
|
+
@options.rspec?.should_not be_nil
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
63
|
+
|
64
|
+
def parse_options(*arguments)
|
65
|
+
@options = InfinityTest::Options.new(arguments)
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
69
|
+
end
|
@@ -0,0 +1,189 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module InfinityTest
|
4
|
+
describe Rspec do
|
5
|
+
before do
|
6
|
+
@current_dir = Dir.pwd
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should be possible to set all rubies" do
|
10
|
+
Rspec.new(:rubies => '1.9.1').rubies.should be == '1.9.1'
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should set the rubies" do
|
14
|
+
Rspec.new(:rubies => 'jruby,ree').rubies.should be == 'jruby,ree'
|
15
|
+
end
|
16
|
+
|
17
|
+
it "rubies should be empty when not have rubies" do
|
18
|
+
Rspec.new.rubies.should be_empty
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should have the pattern for spec directory" do
|
22
|
+
Rspec.new.test_directory_pattern.should be == "^spec/*/(.*)_spec.rb"
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'should set a default test pattern when have none' do
|
26
|
+
Rspec.new.test_pattern.should == 'spec/**/*_spec.rb'
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should possible to set the test pattern" do
|
30
|
+
Rspec.new(:test_pattern => 'spec/**/spec_*.rb').test_pattern.should == 'spec/**/spec_*.rb'
|
31
|
+
end
|
32
|
+
|
33
|
+
describe '#spec_files' do
|
34
|
+
|
35
|
+
let(:rspec) { Rspec.new }
|
36
|
+
|
37
|
+
it "return should include the spec files" do
|
38
|
+
Dir.chdir("#{@current_dir}/spec/factories/buzz") do
|
39
|
+
rspec.spec_files.should be == "spec/buzz_spec.rb"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
it "return should include the spec files to test them" do
|
44
|
+
Dir.chdir("#{@current_dir}/spec/factories/wood") do
|
45
|
+
rspec.spec_files.should be == "spec/wood_spec.rb"
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
it "return should include the spec files to test them in two level of the spec folder" do
|
50
|
+
Dir.chdir("#{@current_dir}/spec/factories/slinky") do
|
51
|
+
rspec.spec_files.should be == "spec/slinky/slinky_spec.rb"
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
56
|
+
|
57
|
+
describe '#decide_files' do
|
58
|
+
|
59
|
+
before { @rspec = Rspec.new }
|
60
|
+
|
61
|
+
it "should not call the spec file when match pattern" do
|
62
|
+
@rspec.should_not_receive(:spec_files)
|
63
|
+
@rspec.decide_files('application_spec.rb')
|
64
|
+
end
|
65
|
+
|
66
|
+
it "should call the spec files when pattern is nil" do
|
67
|
+
@rspec.should_receive(:spec_files)
|
68
|
+
@rspec.decide_files(nil)
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
72
|
+
|
73
|
+
describe '#handle_results' do
|
74
|
+
|
75
|
+
before do
|
76
|
+
@rspec = Rspec.new
|
77
|
+
end
|
78
|
+
|
79
|
+
it "should handle a example that succeed" do
|
80
|
+
results = "........Finished in 0.299817 seconds\n\n105 examples, 0 failures, 0 pending\n"
|
81
|
+
@rspec.parse_results(results)
|
82
|
+
@rspec.message.should == "105 examples, 0 failures, 0 pending"
|
83
|
+
end
|
84
|
+
|
85
|
+
it "should parse without the terminal ansi color" do
|
86
|
+
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"
|
87
|
+
@rspec.parse_results(results)
|
88
|
+
@rspec.message.should == "406 examples, 5 failures, 2 pending"
|
89
|
+
end
|
90
|
+
|
91
|
+
it "should handle a example that succeed and return false for failure?" do
|
92
|
+
results = "........Finished in 0.299817 seconds\n\n105 examples, 0 failures, 0 pending\n"
|
93
|
+
@rspec.parse_results(results)
|
94
|
+
@rspec.failure?.should equal false
|
95
|
+
end
|
96
|
+
|
97
|
+
it "should parse without the terminal ansi color and grep the failure" do
|
98
|
+
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"
|
99
|
+
@rspec.parse_results(results)
|
100
|
+
@rspec.failure?.should be_true
|
101
|
+
end
|
102
|
+
|
103
|
+
it "should parse without the terminal ansi color and grep the pending" do
|
104
|
+
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"
|
105
|
+
@rspec.parse_results(results)
|
106
|
+
@rspec.pending?.should be_true
|
107
|
+
end
|
108
|
+
|
109
|
+
it "should parse rspec tests errors" do
|
110
|
+
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)"
|
111
|
+
@rspec.parse_results(results)
|
112
|
+
@rspec.message.should == "An exception occurred"
|
113
|
+
end
|
114
|
+
|
115
|
+
it "should parse rspec tests errors" do
|
116
|
+
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)"
|
117
|
+
@rspec.parse_results(results)
|
118
|
+
@rspec.failure?.should be_true
|
119
|
+
end
|
120
|
+
|
121
|
+
it "should parse rspec tests errors" do
|
122
|
+
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)"
|
123
|
+
@rspec.parse_results(results)
|
124
|
+
@rspec.sucess?.should equal false
|
125
|
+
end
|
126
|
+
|
127
|
+
it "should parse rspec tests errors" do
|
128
|
+
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)"
|
129
|
+
@rspec.parse_results(results)
|
130
|
+
@rspec.pending?.should equal false
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
134
|
+
describe '#sucess?' do
|
135
|
+
before { @rspec = Rspec.new }
|
136
|
+
|
137
|
+
it "should return false when have failures" do
|
138
|
+
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"
|
139
|
+
@rspec.parse_results(results)
|
140
|
+
@rspec.sucess?.should equal false
|
141
|
+
end
|
142
|
+
|
143
|
+
it "should return false when have pending" do
|
144
|
+
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"
|
145
|
+
@rspec.parse_results(results)
|
146
|
+
@rspec.sucess?.should be_false
|
147
|
+
end
|
148
|
+
|
149
|
+
it "should return true when have zero failures and zero pending" do
|
150
|
+
results = "........Finished in 0.299817 seconds\n\n105 examples, 0 failures, 0 pending\n"
|
151
|
+
@rspec.parse_results(results)
|
152
|
+
@rspec.sucess?.should be_true
|
153
|
+
end
|
154
|
+
|
155
|
+
end
|
156
|
+
|
157
|
+
describe '#pending?' do
|
158
|
+
let(:rspec) { Rspec.new }
|
159
|
+
|
160
|
+
it "should return true when have pending" do
|
161
|
+
rspec.pending = 1
|
162
|
+
rspec.failure = 0
|
163
|
+
rspec.pending?.should be_true
|
164
|
+
end
|
165
|
+
|
166
|
+
it "should return false when have pending bu thave failures" do
|
167
|
+
rspec.pending = 1
|
168
|
+
rspec.failure = 1
|
169
|
+
rspec.pending?.should equal false
|
170
|
+
end
|
171
|
+
|
172
|
+
end
|
173
|
+
|
174
|
+
def redefine_const(name,value)
|
175
|
+
if Object.const_defined?(name)
|
176
|
+
old_value = Object.const_get(name)
|
177
|
+
Object.send(:remove_const, name)
|
178
|
+
else
|
179
|
+
old_value = value
|
180
|
+
end
|
181
|
+
Object.const_set(name,value)
|
182
|
+
yield
|
183
|
+
ensure
|
184
|
+
Object.send(:remove_const, name)
|
185
|
+
Object.const_set(name, old_value)
|
186
|
+
end
|
187
|
+
|
188
|
+
end
|
189
|
+
end
|