rutema 1.3.0 → 2.0.0.pre
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.
- checksums.yaml +7 -0
- data/History.txt +204 -194
- data/Manifest.txt +15 -48
- data/README.md +55 -61
- data/bin/rutema +7 -7
- data/lib/rutema/application.rb +61 -0
- data/lib/rutema/core/configuration.rb +195 -0
- data/lib/rutema/core/engine.rb +186 -0
- data/lib/rutema/core/framework.rb +28 -0
- data/lib/rutema/{objectmodel.rb → core/objectmodel.rb} +43 -48
- data/lib/rutema/core/parser.rb +35 -0
- data/lib/rutema/core/reporter.rb +105 -0
- data/lib/rutema/core/runner.rb +83 -0
- data/lib/rutema/elements/minimal.rb +47 -44
- data/lib/rutema/parsers/xml.rb +154 -186
- data/lib/rutema/version.rb +9 -0
- metadata +39 -108
- data/README.txt +0 -44
- data/Rakefile +0 -30
- data/examples/README.md +0 -17
- data/examples/config/database.rutema +0 -17
- data/examples/config/full.rutema +0 -27
- data/examples/config/minimal.rutema +0 -10
- data/examples/specs/T001.spec +0 -8
- data/examples/specs/T002.spec +0 -8
- data/examples/specs/T003.spec +0 -8
- data/examples/specs/T004.spec +0 -8
- data/examples/specs/T005.spec +0 -10
- data/examples/specs/T006.spec +0 -9
- data/examples/specs/check.spec +0 -8
- data/examples/specs/fail.spec +0 -9
- data/examples/specs/include.scenario +0 -5
- data/examples/specs/rutema.spec +0 -10
- data/examples/specs/setup.spec +0 -8
- data/examples/specs/teardown.spec +0 -8
- data/lib/rutema/configuration.rb +0 -173
- data/lib/rutema/models/activerecord.rb +0 -159
- data/lib/rutema/models/base.rb +0 -5
- data/lib/rutema/parsers/base.rb +0 -45
- data/lib/rutema/rake.rb +0 -62
- data/lib/rutema/reporters/activerecord.rb +0 -82
- data/lib/rutema/reporters/base.rb +0 -23
- data/lib/rutema/reporters/email.rb +0 -84
- data/lib/rutema/reporters/text.rb +0 -77
- data/lib/rutema/runners/default.rb +0 -157
- data/lib/rutema/runners/step.rb +0 -23
- data/lib/rutema/system.rb +0 -302
- data/test/data/duplicate_name.spec +0 -8
- data/test/data/no_title.spec +0 -5
- data/test/data/sample.spec +0 -8
- data/test/data/test_identifiers.rutema +0 -7
- data/test/test_activerecord.rb +0 -0
- data/test/test_configuration.rb +0 -43
- data/test/test_objectmodel.rb +0 -82
- data/test/test_parsers.rb +0 -131
- data/test/test_reporters.rb +0 -115
- data/test/test_runners.rb +0 -70
- data/test/test_system.rb +0 -45
data/lib/rutema/parsers/xml.rb
CHANGED
@@ -1,186 +1,154 @@
|
|
1
|
-
# Copyright (c) 2007-
|
2
|
-
|
3
|
-
require '
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
module
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
end
|
156
|
-
end
|
157
|
-
#The ExtensibleXMLParser allows you to easily add methods to handle specification elements.
|
158
|
-
#
|
159
|
-
#A method element_foo(step) allows you to add behaviour for foo scenario elements.
|
160
|
-
#
|
161
|
-
#The method will receive a Rutema::TestStep instance.
|
162
|
-
class ExtensibleXMLParser<BaseXMLParser
|
163
|
-
def parse_specification param
|
164
|
-
spec = super(param)
|
165
|
-
#change into the directory the spec is in to handle relative paths correctly
|
166
|
-
Dir.chdir(File.dirname(File.expand_path(spec.filename))) do |path|
|
167
|
-
#iterate through the steps
|
168
|
-
spec.scenario.steps.each do |step|
|
169
|
-
#do we have a method to handle the element?
|
170
|
-
if respond_to?(:"element_#{step.step_type}")
|
171
|
-
begin
|
172
|
-
self.send(:"element_#{step.step_type}",step)
|
173
|
-
rescue
|
174
|
-
raise ParserError, $!.message
|
175
|
-
end
|
176
|
-
end
|
177
|
-
end
|
178
|
-
end
|
179
|
-
return spec
|
180
|
-
end
|
181
|
-
end
|
182
|
-
#MinimalXMLParser offers three runnable steps in the scenarios as defined in Rutema::Elements::Minimal
|
183
|
-
class MinimalXMLParser<ExtensibleXMLParser
|
184
|
-
include Rutema::Elements::Minimal
|
185
|
-
end
|
186
|
-
end
|
1
|
+
# Copyright (c) 2007-2015 Vassilis Rizopoulos. All rights reserved.
|
2
|
+
require 'rexml/document'
|
3
|
+
require 'patir/command'
|
4
|
+
require_relative '../core/parser'
|
5
|
+
require_relative '../core/objectmodel'
|
6
|
+
require_relative '../elements/minimal'
|
7
|
+
|
8
|
+
module Rutema
|
9
|
+
module Parsers
|
10
|
+
#Rutema::Parsers::XML is a basic XML parser that is easily extended
|
11
|
+
#
|
12
|
+
#Derive your parser from this class and define for each element 'foo' that you want to parse
|
13
|
+
#a method element_foo(step)
|
14
|
+
#
|
15
|
+
#The method will receive a Rutema::Step instance as a parameter which it should return
|
16
|
+
class XML<SpecificationParser
|
17
|
+
include Rutema::Elements::Minimal
|
18
|
+
#:nodoc:
|
19
|
+
ELEM_SPEC="specification"
|
20
|
+
#:nodoc:
|
21
|
+
ELEM_DESC="specification/description"
|
22
|
+
#:nodoc:
|
23
|
+
ELEM_TITLE="specification/title"
|
24
|
+
#:nodoc:
|
25
|
+
ELEM_SCENARIO="specification/scenario"
|
26
|
+
#Parses __param__ and returns the Rutema::Specification instance
|
27
|
+
#
|
28
|
+
#param can be the filename of the specification or the contents of that file.
|
29
|
+
#
|
30
|
+
#Will throw Rutema::ParserError if something goes wrong
|
31
|
+
def parse_specification param
|
32
|
+
@parsed||=[]
|
33
|
+
begin
|
34
|
+
if File.exist?(param)
|
35
|
+
txt=File.read(param)
|
36
|
+
filename=File.expand_path(param)
|
37
|
+
else
|
38
|
+
txt=param
|
39
|
+
filename=Dir.pwd
|
40
|
+
end
|
41
|
+
spec=parse_case(txt,filename)
|
42
|
+
raise Rutema::ParserError,"Missing required attribute 'name' in specification element" unless spec.has_name? && !spec.name.empty?
|
43
|
+
raise Rutema::ParserError,"Duplicate test name '#{spec.name}' in #{filename}" if @parsed.include?(spec.name)
|
44
|
+
@parsed<<spec.name
|
45
|
+
extension_handling(spec)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
private
|
49
|
+
#Parses the XML specification of a testcase and creates the corresponding Rutema::Specification instance
|
50
|
+
def parse_case xmltxt,filename
|
51
|
+
spec=Rutema::Specification.new({})
|
52
|
+
xmldoc=REXML::Document.new( xmltxt )
|
53
|
+
validate_case(xmldoc)
|
54
|
+
xmldoc.root.attributes.each do |attr,value|
|
55
|
+
add_attribute(spec,attr,value)
|
56
|
+
end
|
57
|
+
spec.title=xmldoc.elements[ELEM_TITLE].text
|
58
|
+
spec.title||=""
|
59
|
+
spec.title.strip!
|
60
|
+
spec.description=xmldoc.elements[ELEM_DESC].text
|
61
|
+
spec.description||=""
|
62
|
+
unless spec.description.empty?
|
63
|
+
spec.description.strip!
|
64
|
+
spec.description.gsub!(/\t/,'')
|
65
|
+
end
|
66
|
+
Dir.chdir(File.dirname(filename)) do
|
67
|
+
spec.scenario=parse_scenario(xmldoc.elements[ELEM_SCENARIO].to_s) if xmldoc.elements[ELEM_SCENARIO]
|
68
|
+
end
|
69
|
+
spec.filename=filename
|
70
|
+
return spec
|
71
|
+
end
|
72
|
+
#Validates the XML file from our point of view.
|
73
|
+
def validate_case xmldoc
|
74
|
+
raise Rutema::ParserError,"missing #{ELEM_SPEC} element in #{xmldoc}" unless xmldoc.elements[ELEM_SPEC]
|
75
|
+
raise Rutema::ParserError,"missing #{ELEM_DESC} element in #{xmldoc}" unless xmldoc.elements[ELEM_DESC]
|
76
|
+
raise Rutema::ParserError,"missing #{ELEM_TITLE} element in #{xmldoc}" unless xmldoc.elements[ELEM_TITLE]
|
77
|
+
end
|
78
|
+
#Parses the 'scenario' XML element and returns the Rutema::Scenario instance
|
79
|
+
def parse_scenario xmltxt
|
80
|
+
scenario=Rutema::Scenario.new([])
|
81
|
+
xmldoc=REXML::Document.new( xmltxt )
|
82
|
+
xmldoc.root.attributes.each do |attr,value|
|
83
|
+
add_attribute(scenario,attr,value)
|
84
|
+
end
|
85
|
+
number=0
|
86
|
+
xmldoc.root.elements.each do |el|
|
87
|
+
step=parse_step(el.to_s)
|
88
|
+
if step.step_type=="include_scenario"
|
89
|
+
included_scenario=include_scenario(step)
|
90
|
+
included_scenario.steps.each do |st|
|
91
|
+
number+=1
|
92
|
+
st.number=number
|
93
|
+
st.included_in=step.file
|
94
|
+
scenario.add_step(st)
|
95
|
+
end
|
96
|
+
else
|
97
|
+
number+=1
|
98
|
+
step.number=number
|
99
|
+
scenario.add_step(step)
|
100
|
+
end
|
101
|
+
end
|
102
|
+
return scenario
|
103
|
+
end
|
104
|
+
#Parses xml and returns the Rutema::Step instance
|
105
|
+
def parse_step xmltxt
|
106
|
+
xmldoc=REXML::Document.new( xmltxt )
|
107
|
+
#any step element
|
108
|
+
step=Rutema::Step.new()
|
109
|
+
step.ignore=false
|
110
|
+
xmldoc.root.attributes.each do |attr,value|
|
111
|
+
add_attribute(step,attr,value)
|
112
|
+
end
|
113
|
+
step.text=xmldoc.root.text.strip if xmldoc.root.text
|
114
|
+
step.step_type=xmldoc.root.name
|
115
|
+
return step
|
116
|
+
end
|
117
|
+
def add_attribute element,attr,value
|
118
|
+
if boolean?(value)
|
119
|
+
element.attribute(attr,eval(value))
|
120
|
+
else
|
121
|
+
element.attribute(attr,value)
|
122
|
+
end
|
123
|
+
end
|
124
|
+
def boolean? attribute_value
|
125
|
+
return true if attribute_value=="true" || attribute_value=="false"
|
126
|
+
return false
|
127
|
+
end
|
128
|
+
#handles <include_scenario> elements, adding the steps to the current scenario
|
129
|
+
def include_scenario step
|
130
|
+
raise Rutema::ParserError,"missing required attribute file in #{step}" unless step.has_file?
|
131
|
+
raise Rutema::ParserError,"Cannot find #{File.expand_path(step.file)}" unless File.exist?(File.expand_path(step.file))
|
132
|
+
step.file=File.expand_path(step.file)
|
133
|
+
include_content=File.read(step.file)
|
134
|
+
return parse_scenario(include_content)
|
135
|
+
end
|
136
|
+
def extension_handling spec
|
137
|
+
#change into the directory the spec is in to handle relative paths correctly
|
138
|
+
Dir.chdir(File.dirname(File.expand_path(spec.filename))) do |path|
|
139
|
+
spec.scenario.steps.each do |step|
|
140
|
+
#do we have a method to handle the element?
|
141
|
+
if respond_to?(:"element_#{step.step_type}")
|
142
|
+
begin
|
143
|
+
self.send(:"element_#{step.step_type}",step)
|
144
|
+
rescue
|
145
|
+
raise ParserError, $!.message
|
146
|
+
end
|
147
|
+
end#begin
|
148
|
+
end#each
|
149
|
+
end#chdir
|
150
|
+
return spec
|
151
|
+
end
|
152
|
+
end
|
153
|
+
end
|
154
|
+
end
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rutema
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
5
|
-
prerelease:
|
4
|
+
version: 2.0.0.pre
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Vassilis Rizopoulos
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2015-03-09 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: patir
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ~>
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,136 +27,82 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: highline
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ~>
|
36
32
|
- !ruby/object:Gem::Version
|
37
|
-
version: 1.
|
33
|
+
version: 1.7.0
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ~>
|
44
39
|
- !ruby/object:Gem::Version
|
45
|
-
version: 1.
|
46
|
-
- !ruby/object:Gem::Dependency
|
47
|
-
name: mailfactory
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
|
-
requirements:
|
51
|
-
- - ~>
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: 1.4.0
|
54
|
-
type: :runtime
|
55
|
-
prerelease: false
|
56
|
-
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
|
-
requirements:
|
59
|
-
- - ~>
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: 1.4.0
|
40
|
+
version: 1.7.0
|
62
41
|
- !ruby/object:Gem::Dependency
|
63
42
|
name: rdoc
|
64
43
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
44
|
requirements:
|
67
45
|
- - ~>
|
68
46
|
- !ruby/object:Gem::Version
|
69
|
-
version: '
|
47
|
+
version: '4.0'
|
70
48
|
type: :development
|
71
49
|
prerelease: false
|
72
50
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
51
|
requirements:
|
75
52
|
- - ~>
|
76
53
|
- !ruby/object:Gem::Version
|
77
|
-
version: '
|
54
|
+
version: '4.0'
|
78
55
|
- !ruby/object:Gem::Dependency
|
79
56
|
name: hoe
|
80
57
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
58
|
requirements:
|
83
59
|
- - ~>
|
84
60
|
- !ruby/object:Gem::Version
|
85
|
-
version: '3.
|
61
|
+
version: '3.13'
|
86
62
|
type: :development
|
87
63
|
prerelease: false
|
88
64
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
65
|
requirements:
|
91
66
|
- - ~>
|
92
67
|
- !ruby/object:Gem::Version
|
93
|
-
version: '3.
|
94
|
-
description:
|
95
|
-
|
96
|
-
|
68
|
+
version: '3.13'
|
69
|
+
description: "rutema [http://github.com/damphyr/rutema](http://github.com/damphyr/rutema)\n\nrutema
|
70
|
+
is a test execution tool and a framework for organizing and managing test execution
|
71
|
+
across different tools.\n\nIt enables the combination of different test tools while
|
72
|
+
it takes care of logging, reporting, archiving of results and formalizes execution
|
73
|
+
of automated and manual tests.\n\nIt's purpose is to make testing in heterogeneous
|
97
74
|
environments easier. \n\n###Why?\nRequire consistency, repeatability and reliability
|
98
|
-
from your test infrastructure while gathering data on every run
|
99
|
-
|
100
|
-
|
101
|
-
and what was the state of the system at that time.\n\nrutema will gather all logs,
|
102
|
-
timestamp them, store them and report on them. "
|
103
|
-
email: vassilisrizopoulos@gmail.com
|
75
|
+
from your test infrastructure while gathering data on every run."
|
76
|
+
email:
|
77
|
+
- vassilisrizopoulos@gmail.com
|
104
78
|
executables:
|
105
79
|
- rutema
|
106
80
|
extensions: []
|
107
81
|
extra_rdoc_files:
|
108
82
|
- History.txt
|
109
83
|
- Manifest.txt
|
110
|
-
- README.
|
84
|
+
- README.md
|
111
85
|
files:
|
112
|
-
- bin/rutema
|
113
86
|
- History.txt
|
114
|
-
- examples/config/database.rutema
|
115
|
-
- examples/config/full.rutema
|
116
|
-
- examples/config/minimal.rutema
|
117
|
-
- examples/README.md
|
118
|
-
- examples/specs/check.spec
|
119
|
-
- examples/specs/fail.spec
|
120
|
-
- examples/specs/include.scenario
|
121
|
-
- examples/specs/rutema.spec
|
122
|
-
- examples/specs/setup.spec
|
123
|
-
- examples/specs/T001.spec
|
124
|
-
- examples/specs/T002.spec
|
125
|
-
- examples/specs/T003.spec
|
126
|
-
- examples/specs/T004.spec
|
127
|
-
- examples/specs/T005.spec
|
128
|
-
- examples/specs/T006.spec
|
129
|
-
- examples/specs/teardown.spec
|
130
|
-
- lib/rutema/configuration.rb
|
131
|
-
- lib/rutema/elements/minimal.rb
|
132
|
-
- lib/rutema/models/activerecord.rb
|
133
|
-
- lib/rutema/models/base.rb
|
134
|
-
- lib/rutema/objectmodel.rb
|
135
|
-
- lib/rutema/parsers/base.rb
|
136
|
-
- lib/rutema/parsers/xml.rb
|
137
|
-
- lib/rutema/rake.rb
|
138
|
-
- lib/rutema/reporters/activerecord.rb
|
139
|
-
- lib/rutema/reporters/base.rb
|
140
|
-
- lib/rutema/reporters/email.rb
|
141
|
-
- lib/rutema/reporters/text.rb
|
142
|
-
- lib/rutema/runners/default.rb
|
143
|
-
- lib/rutema/runners/step.rb
|
144
|
-
- lib/rutema/system.rb
|
145
87
|
- Manifest.txt
|
146
|
-
- Rakefile
|
147
88
|
- README.md
|
148
|
-
-
|
149
|
-
-
|
150
|
-
-
|
151
|
-
-
|
152
|
-
-
|
153
|
-
-
|
154
|
-
-
|
155
|
-
-
|
156
|
-
-
|
157
|
-
-
|
158
|
-
-
|
159
|
-
-
|
89
|
+
- bin/rutema
|
90
|
+
- lib/rutema/application.rb
|
91
|
+
- lib/rutema/core/configuration.rb
|
92
|
+
- lib/rutema/core/engine.rb
|
93
|
+
- lib/rutema/core/framework.rb
|
94
|
+
- lib/rutema/core/objectmodel.rb
|
95
|
+
- lib/rutema/core/parser.rb
|
96
|
+
- lib/rutema/core/reporter.rb
|
97
|
+
- lib/rutema/core/runner.rb
|
98
|
+
- lib/rutema/elements/minimal.rb
|
99
|
+
- lib/rutema/parsers/xml.rb
|
100
|
+
- lib/rutema/version.rb
|
160
101
|
- .gemtest
|
161
102
|
homepage: http://github.com/damphyr/rutema
|
162
|
-
licenses:
|
103
|
+
licenses:
|
104
|
+
- MIT
|
105
|
+
metadata: {}
|
163
106
|
post_install_message:
|
164
107
|
rdoc_options:
|
165
108
|
- --main
|
@@ -167,32 +110,20 @@ rdoc_options:
|
|
167
110
|
require_paths:
|
168
111
|
- lib
|
169
112
|
required_ruby_version: !ruby/object:Gem::Requirement
|
170
|
-
none: false
|
171
113
|
requirements:
|
172
|
-
- -
|
114
|
+
- - '>='
|
173
115
|
- !ruby/object:Gem::Version
|
174
116
|
version: '0'
|
175
|
-
segments:
|
176
|
-
- 0
|
177
|
-
hash: 1271940349164417717
|
178
117
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
179
|
-
none: false
|
180
118
|
requirements:
|
181
|
-
- -
|
119
|
+
- - '>'
|
182
120
|
- !ruby/object:Gem::Version
|
183
|
-
version:
|
121
|
+
version: 1.3.1
|
184
122
|
requirements: []
|
185
|
-
rubyforge_project:
|
186
|
-
rubygems_version:
|
123
|
+
rubyforge_project:
|
124
|
+
rubygems_version: 2.0.14
|
187
125
|
signing_key:
|
188
|
-
specification_version:
|
126
|
+
specification_version: 4
|
189
127
|
summary: rutema is a test execution and management framework for heterogeneous testing
|
190
128
|
environments
|
191
|
-
test_files:
|
192
|
-
- test/test_activerecord.rb
|
193
|
-
- test/test_configuration.rb
|
194
|
-
- test/test_objectmodel.rb
|
195
|
-
- test/test_parsers.rb
|
196
|
-
- test/test_reporters.rb
|
197
|
-
- test/test_runners.rb
|
198
|
-
- test/test_system.rb
|
129
|
+
test_files: []
|