dtest 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -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