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.
@@ -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
@@ -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: