dtest 0.0.3 → 0.0.4

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.
@@ -16,7 +16,6 @@ DTest is a testing tool to describe integrating test for distributed systems.
16
16
 
17
17
  * support Ctrl-C interruption
18
18
  * TestCase value-parameterized
19
- * detect multible GlobalHarness definitions
20
19
  * desigining instance variable valid scope
21
20
 
22
21
  == Copyright
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.3
1
+ 0.0.4
@@ -2,8 +2,6 @@
2
2
 
3
3
  require 'singleton'
4
4
  require 'time'
5
- require 'rexml/document'
6
- require 'rexml/cdata'
7
5
 
8
6
  require 'dtest/failure'
9
7
  require 'dtest/util'
@@ -1,5 +1,6 @@
1
1
 
2
2
  require 'dtest/core'
3
+ require 'dtest/failure'
3
4
 
4
5
  module DTest
5
6
  module DSL
@@ -11,7 +12,15 @@ module DTest
11
12
 
12
13
  def GlobalHarness(&block)
13
14
  manager = Global::Manager::instance
14
- manager.instance_eval(&block)
15
+ if manager.defined
16
+ file, line, = DTest::failure_line(caller(1).first)
17
+ str = ['GlobalHarness can only be only defined once.']
18
+ str << " error at #{file}:#{line}" if file && line
19
+ raise str.join("\n")
20
+ else
21
+ manager.instance_eval(&block)
22
+ manager.defined = true
23
+ end
15
24
  end
16
25
  end # module DSL
17
26
  end # module DTest
@@ -22,7 +22,8 @@ module DTest
22
22
 
23
23
  def start(testcases)
24
24
  # Progress
25
- context = Context.new
25
+ global_values = Object.new
26
+ context = Context.new(global_values)
26
27
  Progress.setUpGlobal(testcases)
27
28
 
28
29
  global_result = Test::GlobalResult.new(testcases)
@@ -37,6 +38,7 @@ module DTest
37
38
 
38
39
  # execute cases
39
40
  testcases.each do |testcase|
41
+ testcase.defined_values = global_values.clone
40
42
  execute_testcase(global_result, testcase)
41
43
  end
42
44
  rescue AbortGlobal => e
@@ -65,6 +67,7 @@ module DTest
65
67
  class Manager
66
68
  include Singleton
67
69
  attr_accessor :harness
70
+ attr_accessor :defined
68
71
 
69
72
  def initialize
70
73
  clear
@@ -73,6 +76,7 @@ module DTest
73
76
  def clear
74
77
  remove_instance_var
75
78
  @harness = Harness.new
79
+ @defined = false
76
80
  end
77
81
 
78
82
  def before(option = {}, &block)
@@ -1,4 +1,6 @@
1
1
  require 'dtest/failure'
2
+ require 'rexml/document'
3
+ require 'rexml/cdata'
2
4
 
3
5
  module DTest
4
6
 
@@ -181,7 +183,11 @@ module DTest
181
183
  end
182
184
  end
183
185
 
184
- doc.write(REXML::Output.new(File.new(output_path, 'w+'), REXML::Encoding::UTF_8))
186
+ if RUBY_VERSION >= '1.9.3'
187
+ doc.write(REXML::Output.new(File.new(output_path, 'w+')))
188
+ else
189
+ doc.write(REXML::Output.new(File.new(output_path, 'w+'), REXML::Encoding::UTF_8))
190
+ end
185
191
  end
186
192
  end # class GlobalResult
187
193
 
@@ -10,6 +10,7 @@ module DTest
10
10
  attr_accessor :beforeCase, :afterCase
11
11
  attr_accessor :before, :after
12
12
  attr_accessor :test
13
+ attr_accessor :defined_values
13
14
 
14
15
  def initialize(name, beforeCase, afterCase, before, after, test)
15
16
  @name = name
@@ -1,5 +1,5 @@
1
1
  module DTest
2
2
 
3
- VERSION = '0.0.3'
3
+ VERSION = '0.0.4'
4
4
 
5
5
  end
@@ -1,5 +1,23 @@
1
+ require File.expand_path(File.join('.', 'spec_helper'), File.dirname(__FILE__))
1
2
  include DTest
2
3
 
4
+ describe Global::Manager, 'GlobalHarness can only be defined once' do
5
+ after do
6
+ Global::Manager.instance.clear
7
+ Test::Manager.instance.clear
8
+ end
9
+
10
+ it "multiple_definition" do
11
+
12
+ GlobalHarness do
13
+ end
14
+ lambda {
15
+ GlobalHarness do
16
+ end
17
+ }.should raise_error(RuntimeError)
18
+
19
+ end
20
+ end
3
21
 
4
22
  describe Global::Manager, 'global before/after exception' do
5
23
  before do
@@ -129,9 +129,11 @@ describe Global::Manager, 'dtest setter/getter' do
129
129
  before do
130
130
  GlobalHarness do
131
131
  before do
132
+ set :global_value, 54321
132
133
  end
133
134
 
134
135
  after do
136
+ assert_equal(54321, global_value) # PASS
135
137
  end
136
138
  end
137
139
  end
@@ -149,17 +151,24 @@ describe Global::Manager, 'dtest setter/getter' do
149
151
  set "member_modify", 12345
150
152
  assert_equal(12345, member_test) # PASS
151
153
  assert_equal(12345, member_modify)# PASS
154
+ assert_equal(54321, global_value) # PASS
152
155
  end
153
156
 
154
157
  afterCase do
155
158
  assert_equal(12345, member_test) # PASS
156
- assert_equal(10000, member_modify)# PASS
159
+ assert_equal(10000, member_modify)# PASS(value is changed)
160
+ assert_equal(10000, global_value) # PASS(value is changed)
157
161
  end
158
162
 
159
- test "modify_member" do
163
+ test "allow_modify_member" do
160
164
  assert_equal(12345, member_test) # PASS
161
165
  set :member_modify, 10000
162
166
  end
167
+
168
+ test "allow_modify_global" do
169
+ assert_equal(54321, global_value) # PASS
170
+ set :global_value, 10000
171
+ end
163
172
  end
164
173
 
165
174
  global_report = Runner.run([])
@@ -168,7 +177,7 @@ describe Global::Manager, 'dtest setter/getter' do
168
177
  global_report.result.size == 1
169
178
  cresult = global_report.result.first
170
179
  cresult.before_failure.failure.size.should == 0
171
- cresult.result.size.should == 1
180
+ cresult.result.size.should == 2
172
181
  cresult.result[0].result.should == Test::Result::PASS
173
182
  cresult.after_failure.failure.size.should == 0
174
183
  end
metadata CHANGED
@@ -1,46 +1,59 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: dtest
3
- version: !ruby/object:Gem::Version
4
- version: 0.0.3
5
- prerelease:
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 4
9
+ version: 0.0.4
6
10
  platform: ruby
7
- authors:
11
+ authors:
8
12
  - Shuzo Kashihara
9
13
  autorequire:
10
14
  bindir: bin
11
15
  cert_chain: []
12
- date: 2011-11-15 00:00:00.000000000Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
16
+
17
+ date: 2012-02-13 00:00:00 +09:00
18
+ default_executable:
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
15
21
  name: rake
16
- requirement: &70135037565500 !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ segments:
28
+ - 0
29
+ - 9
30
+ - 2
21
31
  version: 0.9.2
22
32
  type: :development
23
- prerelease: false
24
- version_requirements: *70135037565500
25
- - !ruby/object:Gem::Dependency
33
+ version_requirements: *id001
34
+ - !ruby/object:Gem::Dependency
26
35
  name: rspec
27
- requirement: &70135037565040 !ruby/object:Gem::Requirement
28
- none: false
29
- requirements:
30
- - - ! '>='
31
- - !ruby/object:Gem::Version
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ segments:
42
+ - 1
43
+ - 2
44
+ - 3
32
45
  version: 1.2.3
33
46
  type: :development
34
- prerelease: false
35
- version_requirements: *70135037565040
36
- description: DTest is a testing tool to describe integrating test for distributed
37
- systems.
47
+ version_requirements: *id002
48
+ description: DTest is a testing tool to describe integrating test for distributed systems.
38
49
  email: suma@sourceforge.jp
39
- executables:
50
+ executables:
40
51
  - dtest
41
52
  extensions: []
53
+
42
54
  extra_rdoc_files: []
43
- files:
55
+
56
+ files:
44
57
  - Gemfile
45
58
  - LICENSE.txt
46
59
  - README.rdoc
@@ -72,31 +85,39 @@ files:
72
85
  - spec/test_expect_spec.rb
73
86
  - spec/test_spec.rb
74
87
  - spec/test_value_parameterized_spec.rb
88
+ has_rdoc: false
75
89
  homepage: https://github.com/suma/dtest
76
90
  licenses: []
91
+
77
92
  post_install_message:
78
93
  rdoc_options: []
79
- require_paths:
94
+
95
+ require_paths:
80
96
  - lib
81
- required_ruby_version: !ruby/object:Gem::Requirement
82
- none: false
83
- requirements:
84
- - - ! '>='
85
- - !ruby/object:Gem::Version
97
+ required_ruby_version: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - ">="
100
+ - !ruby/object:Gem::Version
101
+ segments:
102
+ - 1
103
+ - 8
104
+ - 7
86
105
  version: 1.8.7
87
- required_rubygems_version: !ruby/object:Gem::Requirement
88
- none: false
89
- requirements:
90
- - - ! '>='
91
- - !ruby/object:Gem::Version
92
- version: '0'
106
+ required_rubygems_version: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ segments:
111
+ - 0
112
+ version: "0"
93
113
  requirements: []
114
+
94
115
  rubyforge_project:
95
- rubygems_version: 1.8.10
116
+ rubygems_version: 1.3.6
96
117
  signing_key:
97
118
  specification_version: 3
98
119
  summary: DTest is a testing tool to describe integrating test for distributed systems.
99
- test_files:
120
+ test_files:
100
121
  - spec/spec_helper.rb
101
122
  - spec/test_abort_spec.rb
102
123
  - spec/test_assert_spec.rb