rutema 1.0.8 → 1.0.9
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +5 -0
- data/lib/rutema/reporters/activerecord.rb +1 -1
- data/lib/rutema/reporters/text.rb +1 -0
- data/lib/rutema/system.rb +17 -21
- data/test/test_system.rb +2 -1
- metadata +23 -3
data/History.txt
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
== 1.0.9 / 2010-03-22
|
2
|
+
* Fixed (hopefully) a nagging bug in activerecord reporter where it would crash if a step had status nil.
|
3
|
+
* Fixed the same behaviour in the text reporter
|
4
|
+
* Improved the logging of steps to avoid a debug logging exception that messed logs up
|
5
|
+
* Thinned out the debug logs
|
1
6
|
== 1.0.8 / 2009-11-13
|
2
7
|
* ActiveRecordReporter now accepts all activerecord adapter parameters - you can now connect to DBs other than sqlite3
|
3
8
|
* Reporter delegation now more robust (rutemax will exit gracefully and log if one reporter bombs)
|
@@ -24,6 +24,7 @@ module Rutema
|
|
24
24
|
end
|
25
25
|
msg<<"\n---"
|
26
26
|
#Report on scenarios
|
27
|
+
runner_states.compact!#make sure no nil elements make it through
|
27
28
|
msg<<"\nNo scenarios in this run" if runner_states.empty?
|
28
29
|
msg<<"\nOne scenario in the current run" if runner_states.size==1
|
29
30
|
msg<<"\n#{runner_states.size} scenarios in the current run" if runner_states.size>1
|
data/lib/rutema/system.rb
CHANGED
@@ -13,7 +13,7 @@ module Rutema
|
|
13
13
|
module Version
|
14
14
|
MAJOR=1
|
15
15
|
MINOR=0
|
16
|
-
TINY=
|
16
|
+
TINY=9
|
17
17
|
STRING=[ MAJOR, MINOR, TINY ].join( "." )
|
18
18
|
end
|
19
19
|
#The Elements module provides the namespace for the various modules adding parser functionality
|
@@ -144,7 +144,6 @@ module Rutema
|
|
144
144
|
reqs.collect!{|r| r.attributes["name"]}
|
145
145
|
spec.requirements=reqs
|
146
146
|
#Get the scenario
|
147
|
-
@logger.debug("Parsing scenario element")
|
148
147
|
Dir.chdir(File.dirname(filename)) do
|
149
148
|
spec.scenario=parse_scenario(xmldoc.elements[ELEM_SCENARIO].to_s) if xmldoc.elements[ELEM_SCENARIO]
|
150
149
|
end
|
@@ -204,7 +203,6 @@ module Rutema
|
|
204
203
|
end
|
205
204
|
|
206
205
|
def add_attribute element,attr,value
|
207
|
-
@logger.debug("Adding attribute #{attr} with value #{value}")
|
208
206
|
if boolean?(value)
|
209
207
|
element.attribute(attr,eval(value))
|
210
208
|
else
|
@@ -292,21 +290,17 @@ module Rutema
|
|
292
290
|
when :all
|
293
291
|
@runner.attended=true
|
294
292
|
specs=parse_all_specifications
|
295
|
-
@logger.debug(specs)
|
296
293
|
run_scenarios(specs)
|
297
294
|
when :attended
|
298
295
|
@runner.attended=true
|
299
296
|
specs=parse_all_specifications
|
300
|
-
@logger.debug(specs)
|
301
297
|
run_scenarios(specs.select{|s| s.scenario && s.scenario.attended?})
|
302
298
|
when :unattended
|
303
299
|
specs=parse_all_specifications
|
304
|
-
@logger.debug(specs)
|
305
300
|
run_scenarios(specs.select{|s| s.scenario && !s.scenario.attended?})
|
306
301
|
when String
|
307
302
|
@runner.attended=true
|
308
303
|
spec=parse_specification(mode)
|
309
|
-
@logger.debug("Running #{spec}")
|
310
304
|
run_test(spec) if spec
|
311
305
|
else
|
312
306
|
@logger.fatal("Don't know how to run '#{mode}'")
|
@@ -484,7 +478,8 @@ module Rutema
|
|
484
478
|
@number_of_runs=0
|
485
479
|
@context=context || Hash.new
|
486
480
|
end
|
487
|
-
|
481
|
+
|
482
|
+
#Tells you if the system runs in the mode that expects user input
|
488
483
|
def attended?
|
489
484
|
return @attended
|
490
485
|
end
|
@@ -530,7 +525,8 @@ module Rutema
|
|
530
525
|
def [](name)
|
531
526
|
return @states[name]
|
532
527
|
end
|
533
|
-
|
528
|
+
|
529
|
+
#Resets the Runner's internal state
|
534
530
|
def reset
|
535
531
|
@states.clear
|
536
532
|
@number_of_runs=0
|
@@ -582,28 +578,28 @@ module Rutema
|
|
582
578
|
@logger.info("Running step #{step.number} - #{step.name}")
|
583
579
|
if step.has_cmd? && step.cmd.respond_to?(:run)
|
584
580
|
step.cmd.run(@context)
|
581
|
+
msg=step.to_s
|
582
|
+
if !step.cmd.success?
|
583
|
+
msg<<"\n#{step.cmd.output}" unless step.cmd.output.empty?
|
584
|
+
msg<<"\n#{step.cmd.error}" unless step.cmd.error.empty?
|
585
|
+
end
|
585
586
|
else
|
586
587
|
@logger.warn("No command associated with step '#{step.step_type}'. Step number is #{step.number}")
|
587
588
|
end
|
588
|
-
|
589
|
-
|
590
|
-
|
591
|
-
|
592
|
-
|
593
|
-
msg<<"\n#{step.cmd.error}" unless step.cmd.error.empty?
|
594
|
-
end
|
589
|
+
step.status=:success if step.status==:error && step.ignore?
|
590
|
+
log_step_result(step,msg)
|
591
|
+
return step
|
592
|
+
end
|
593
|
+
def log_step_result step,msg
|
595
594
|
if step.status==:error
|
596
595
|
if step.ignore?
|
597
|
-
@logger.warn("Step failed but result is being ignored
|
598
|
-
@logger.warn(msg)
|
599
|
-
step.status=:success
|
596
|
+
@logger.warn("Step failed but result is being ignored!\n#{msg}")
|
600
597
|
else
|
601
598
|
@logger.error(msg)
|
602
599
|
end
|
603
600
|
else
|
604
|
-
@logger.info(msg)
|
601
|
+
@logger.info(msg) if msg && !msg.empty?
|
605
602
|
end
|
606
|
-
return step
|
607
603
|
end
|
608
604
|
end
|
609
605
|
|
data/test/test_system.rb
CHANGED
@@ -187,6 +187,7 @@ module TestRutema
|
|
187
187
|
end
|
188
188
|
|
189
189
|
def test_ignore
|
190
|
+
$DEBUG=true
|
190
191
|
step=OpenStruct.new("status"=>:not_executed)
|
191
192
|
step.stubs(:number).returns(1)
|
192
193
|
step.stubs(:name).returns("mock")
|
@@ -197,7 +198,7 @@ module TestRutema
|
|
197
198
|
step.stubs(:exec_time).returns(12)
|
198
199
|
step.stubs(:has_cmd?).returns(false)
|
199
200
|
step.expects(:ignore?).returns(true)
|
200
|
-
step.expects(:status).times(
|
201
|
+
step.expects(:status).times(6).returns(:not_executed).then.returns(:not_executed).then.returns(:error).then.returns(:warning).then.returns(:warning)
|
201
202
|
scenario=Rutema::TestScenario.new
|
202
203
|
scenario.expects(:attended?).returns(false)
|
203
204
|
scenario.stubs(:steps).returns([step])
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rutema
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vassilis Rizopoulos
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2010-04-07 00:00:00 +03:00
|
13
13
|
default_executable: rutemax
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -72,6 +72,26 @@ dependencies:
|
|
72
72
|
- !ruby/object:Gem::Version
|
73
73
|
version: 1.1.1
|
74
74
|
version:
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: rubyforge
|
77
|
+
type: :development
|
78
|
+
version_requirement:
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: 2.0.3
|
84
|
+
version:
|
85
|
+
- !ruby/object:Gem::Dependency
|
86
|
+
name: gemcutter
|
87
|
+
type: :development
|
88
|
+
version_requirement:
|
89
|
+
version_requirements: !ruby/object:Gem::Requirement
|
90
|
+
requirements:
|
91
|
+
- - ">="
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 0.3.0
|
94
|
+
version:
|
75
95
|
- !ruby/object:Gem::Dependency
|
76
96
|
name: hoe
|
77
97
|
type: :development
|
@@ -80,7 +100,7 @@ dependencies:
|
|
80
100
|
requirements:
|
81
101
|
- - ">="
|
82
102
|
- !ruby/object:Gem::Version
|
83
|
-
version: 2.
|
103
|
+
version: 2.5.0
|
84
104
|
version:
|
85
105
|
description: |-
|
86
106
|
== DESCRIPTION:
|