rutema 0.1
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/COPYING.txt +340 -0
- data/History.txt +7 -0
- data/Manifest.txt +17 -0
- data/README.txt +96 -0
- data/Rakefile +22 -0
- data/lib/rutema/configuration.rb +142 -0
- data/lib/rutema/specification.rb +170 -0
- data/lib/rutema/system.rb +599 -0
- data/test/samples/check.spec +5 -0
- data/test/samples/setup.spec +7 -0
- data/test/samples/teardown.spec +7 -0
- data/test/samples/test.spec +7 -0
- data/test/samples/tests/no_title.spec +4 -0
- data/test/samples/tests/sample.spec +7 -0
- data/test/samples/valid_config.rb +20 -0
- data/test/test_configuration.rb +37 -0
- data/test/test_specification.rb +81 -0
- data/test/test_system.rb +121 -0
- metadata +99 -0
@@ -0,0 +1,81 @@
|
|
1
|
+
$:.unshift File.join(File.dirname(__FILE__),"..","lib")
|
2
|
+
require 'test/unit'
|
3
|
+
|
4
|
+
module TestRutema
|
5
|
+
require 'rutema/specification'
|
6
|
+
class DummyCommand
|
7
|
+
include Patir::Command
|
8
|
+
def initialize
|
9
|
+
@name="dummy"
|
10
|
+
@output="output"
|
11
|
+
@error="error"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
class Dummy
|
15
|
+
include Rutema::SpecificationElement
|
16
|
+
end
|
17
|
+
class TestStep<Test::Unit::TestCase
|
18
|
+
def test_new
|
19
|
+
step=Rutema::TestStep.new("test step",DummyCommand.new())
|
20
|
+
assert(!step.attended?, "attended?")
|
21
|
+
assert_not_equal("dummy", step.name)
|
22
|
+
assert_equal("", step.name)
|
23
|
+
assert_equal("output", step.output)
|
24
|
+
assert_equal("error", step.error)
|
25
|
+
assert_equal(:not_executed, step.status)
|
26
|
+
assert_nothing_raised() { step.run }
|
27
|
+
assert_equal(:success, step.status)
|
28
|
+
assert_nothing_raised() { step.reset }
|
29
|
+
assert_equal(:not_executed, step.status)
|
30
|
+
assert_equal("", step.output)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
class TestSpecification<Test::Unit::TestCase
|
34
|
+
def test_new
|
35
|
+
spec=Rutema::TestSpecification.new
|
36
|
+
assert_equal("", spec.name)
|
37
|
+
assert_equal("", spec.title)
|
38
|
+
assert_equal("", spec.description)
|
39
|
+
assert_not_nil(spec.scenario)
|
40
|
+
assert(spec.requirements.empty?)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
class TestScenario<Test::Unit::TestCase
|
44
|
+
def test_new
|
45
|
+
scenario=Rutema::TestScenario.new
|
46
|
+
assert(scenario.steps.empty?)
|
47
|
+
assert(!scenario.attended?)
|
48
|
+
end
|
49
|
+
def test_add_step
|
50
|
+
step=Rutema::TestStep.new("test step",DummyCommand.new())
|
51
|
+
scenario=Rutema::TestScenario.new
|
52
|
+
scenario.add_step(step)
|
53
|
+
assert_equal(1,scenario.steps.size)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
class TestSpecificationElement<Test::Unit::TestCase
|
57
|
+
def test_attribute
|
58
|
+
obj=Dummy.new
|
59
|
+
assert_raise(NoMethodError) { obj.name }
|
60
|
+
obj.attribute(:name,"name")
|
61
|
+
assert(obj.has_name?)
|
62
|
+
assert_equal(obj.name, "name")
|
63
|
+
assert_raise(NoMethodError) { obj.bool }
|
64
|
+
obj.attribute(:bool,true)
|
65
|
+
assert(obj.bool?)
|
66
|
+
assert_equal(true, obj.bool)
|
67
|
+
assert_raise(NoMethodError) { obj.text_bool }
|
68
|
+
obj.attribute(:text_bool,"true")
|
69
|
+
assert(obj.text_bool?)
|
70
|
+
assert_not_equal(true, obj.text_bool)
|
71
|
+
end
|
72
|
+
|
73
|
+
def test_method_missing
|
74
|
+
obj=Dummy.new
|
75
|
+
assert_raise(NoMethodError) { obj.name }
|
76
|
+
obj.name="name"
|
77
|
+
assert(obj.has_name?)
|
78
|
+
assert_equal(obj.name, "name")
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
data/test/test_system.rb
ADDED
@@ -0,0 +1,121 @@
|
|
1
|
+
$:.unshift File.join(File.dirname(__FILE__),"..","lib")
|
2
|
+
$:.unshift File.join(File.dirname(__FILE__),"..","ext")
|
3
|
+
require 'test/unit'
|
4
|
+
require 'ostruct'
|
5
|
+
|
6
|
+
#$DEBUG=true
|
7
|
+
module TestRutema
|
8
|
+
require 'rutema/system'
|
9
|
+
class MockCommand
|
10
|
+
include Patir::Command
|
11
|
+
def initialize number
|
12
|
+
@number=number
|
13
|
+
end
|
14
|
+
end
|
15
|
+
class TestBaseXMlParser<Test::Unit::TestCase
|
16
|
+
SAMPLE_SPEC=<<EOT
|
17
|
+
<specification name="sample">
|
18
|
+
<title>Title</title>
|
19
|
+
<description>Description</description>
|
20
|
+
<scenario>
|
21
|
+
<step/>
|
22
|
+
<another_step script="script"/>
|
23
|
+
</scenario>
|
24
|
+
</specification>
|
25
|
+
EOT
|
26
|
+
def test_parse_specification
|
27
|
+
parser=Rutema::BaseXMLParser.new({})
|
28
|
+
specification=parser.parse_specification(SAMPLE_SPEC)
|
29
|
+
assert_equal("sample",specification.name)
|
30
|
+
assert_equal("Description", specification.description)
|
31
|
+
assert_equal("Title", specification.title)
|
32
|
+
assert(specification.scenario)
|
33
|
+
assert_equal(2, specification.scenario.steps.size)
|
34
|
+
assert_equal(1, specification.scenario.steps[0].number)
|
35
|
+
assert_equal("another_step", specification.scenario.steps[1].step_type)
|
36
|
+
assert_equal("script", specification.scenario.steps[1].script)
|
37
|
+
assert_equal(2, specification.scenario.steps[1].number)
|
38
|
+
assert_raise(Rutema::ParserError) { parser.parse_specification("") }
|
39
|
+
assert_raise(Rutema::ParserError) { parser.parse_specification("missing.spec") }
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
class TestCoordinator<Test::Unit::TestCase
|
44
|
+
def setup
|
45
|
+
@prev_dir=Dir.pwd
|
46
|
+
Dir.chdir(File.dirname(__FILE__))
|
47
|
+
end
|
48
|
+
def teardown
|
49
|
+
Dir.chdir(@prev_dir)
|
50
|
+
end
|
51
|
+
def test_run
|
52
|
+
conf=OpenStruct.new(:parser=>{:class=>Rutema::BaseXMLParser},
|
53
|
+
:tools=>{},
|
54
|
+
:paths=>{},
|
55
|
+
:tests=>[],
|
56
|
+
:reporters=>[],
|
57
|
+
:context=>OpenStruct.new)
|
58
|
+
coord=nil
|
59
|
+
assert_nothing_raised() { coord=Rutema::Coordinator.new(conf) }
|
60
|
+
assert_nothing_raised() do
|
61
|
+
coord.run(:all)
|
62
|
+
coord.run(:attended)
|
63
|
+
coord.run(:unattended)
|
64
|
+
coord.run("samples/tests/sample.spec")
|
65
|
+
coord.run("samples/tests/no_title.spec")
|
66
|
+
end
|
67
|
+
assert_equal(1,coord.parse_errors.size)
|
68
|
+
puts coord.to_s if $DEBUG
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_report
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
class TestRunner<Test::Unit::TestCase
|
76
|
+
def test_new
|
77
|
+
runner=Rutema::Runner.new
|
78
|
+
assert(!runner.attended?)
|
79
|
+
assert_nil(runner.setup)
|
80
|
+
assert_nil(runner.teardown)
|
81
|
+
assert(runner.states.empty?)
|
82
|
+
end
|
83
|
+
|
84
|
+
def test_run
|
85
|
+
runner=Rutema::Runner.new
|
86
|
+
scenario=Rutema::TestScenario.new
|
87
|
+
state1=runner.run("test1",scenario)
|
88
|
+
state2=runner.run("test2",scenario)
|
89
|
+
assert_equal(state1, runner["test1"])
|
90
|
+
assert_equal(state2, runner["test2"])
|
91
|
+
assert_equal(2, runner.states.size)
|
92
|
+
state2=runner.run("test2",scenario)
|
93
|
+
assert_equal(2, runner.states.size)
|
94
|
+
end
|
95
|
+
|
96
|
+
def test_reset
|
97
|
+
runner=Rutema::Runner.new
|
98
|
+
scenario=Rutema::TestScenario.new
|
99
|
+
state1=runner.run("test1",scenario)
|
100
|
+
state2=runner.run("test2",scenario)
|
101
|
+
assert_equal(2, runner.states.size)
|
102
|
+
runner.reset
|
103
|
+
assert(runner.states.empty?)
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
class TestEmailReporter<Test::Unit::TestCase
|
108
|
+
def setup
|
109
|
+
@parse_errors=[{:filename=>"f.spec",:error=>"error"}]
|
110
|
+
@status=Patir::CommandSequenceStatus.new("test_seq")
|
111
|
+
@status.step=MockCommand.new(1)
|
112
|
+
@status.step=MockCommand.new(2)
|
113
|
+
@status.step=MockCommand.new(3)
|
114
|
+
end
|
115
|
+
def test_new
|
116
|
+
definition={:server=>"localhost",:port=>25,:recipients=>["test"],:sender=>"rutema",:subject=>"test",:dummy=>true}
|
117
|
+
r=Rutema::EmailReporter.new(definition)
|
118
|
+
assert_nothing_raised() { puts r.report(@status,@parse_errors,nil) }
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
metadata
ADDED
@@ -0,0 +1,99 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
rubygems_version: 0.9.1
|
3
|
+
specification_version: 1
|
4
|
+
name: rutema
|
5
|
+
version: !ruby/object:Gem::Version
|
6
|
+
version: "0.1"
|
7
|
+
date: 2007-05-21 00:00:00 +02:00
|
8
|
+
summary: rutema is a test execution and management framework for heterogeneous testing environments
|
9
|
+
require_paths:
|
10
|
+
- lib
|
11
|
+
email: riva@braveworld.net
|
12
|
+
homepage:
|
13
|
+
rubyforge_project: patir
|
14
|
+
description: "It's purpose is to provide a set of classes and a framework that will allow testers to specify and execute tests in heterogeneous testing environments. A heterogeneous testing environment would be one where several testing tools are put to use, it's with it's own scripts and ways to define tests. Rutema will allow you to combine tools, take care of logging, reporting, archiving of results and formalize execution of automated and manual tests. == FEATURES/PROBLEMS: * == SYNOPSIS:"
|
15
|
+
autorequire:
|
16
|
+
default_executable:
|
17
|
+
bindir: bin
|
18
|
+
has_rdoc: true
|
19
|
+
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">"
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 0.0.0
|
24
|
+
version:
|
25
|
+
platform: ruby
|
26
|
+
signing_key:
|
27
|
+
cert_chain:
|
28
|
+
post_install_message:
|
29
|
+
authors:
|
30
|
+
- Vassilis Rizopoulos
|
31
|
+
files:
|
32
|
+
- History.txt
|
33
|
+
- Manifest.txt
|
34
|
+
- README.txt
|
35
|
+
- COPYING.txt
|
36
|
+
- Rakefile
|
37
|
+
- lib/rutema/configuration.rb
|
38
|
+
- lib/rutema/specification.rb
|
39
|
+
- lib/rutema/system.rb
|
40
|
+
- test/test_specification.rb
|
41
|
+
- test/test_system.rb
|
42
|
+
- test/samples/check.spec
|
43
|
+
- test/samples/setup.spec
|
44
|
+
- test/samples/teardown.spec
|
45
|
+
- test/samples/test.spec
|
46
|
+
- test/samples/tests/no_title.spec
|
47
|
+
- test/samples/tests/sample.spec
|
48
|
+
- test/samples/valid_config.rb
|
49
|
+
test_files:
|
50
|
+
- test/test_configuration.rb
|
51
|
+
- test/test_specification.rb
|
52
|
+
- test/test_system.rb
|
53
|
+
rdoc_options: []
|
54
|
+
|
55
|
+
extra_rdoc_files: []
|
56
|
+
|
57
|
+
executables: []
|
58
|
+
|
59
|
+
extensions: []
|
60
|
+
|
61
|
+
requirements: []
|
62
|
+
|
63
|
+
dependencies:
|
64
|
+
- !ruby/object:Gem::Dependency
|
65
|
+
name: patir
|
66
|
+
version_requirement:
|
67
|
+
version_requirements: !ruby/object:Gem::Version::Requirement
|
68
|
+
requirements:
|
69
|
+
- - ">="
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
version: "0.3"
|
72
|
+
version:
|
73
|
+
- !ruby/object:Gem::Dependency
|
74
|
+
name: highline
|
75
|
+
version_requirement:
|
76
|
+
version_requirements: !ruby/object:Gem::Version::Requirement
|
77
|
+
requirements:
|
78
|
+
- - ">"
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: 0.0.0
|
81
|
+
version:
|
82
|
+
- !ruby/object:Gem::Dependency
|
83
|
+
name: mailfactory
|
84
|
+
version_requirement:
|
85
|
+
version_requirements: !ruby/object:Gem::Version::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 0.0.0
|
90
|
+
version:
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: hoe
|
93
|
+
version_requirement:
|
94
|
+
version_requirements: !ruby/object:Gem::Version::Requirement
|
95
|
+
requirements:
|
96
|
+
- - ">="
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: 1.2.0
|
99
|
+
version:
|