oktest 1.1.1 → 1.2.0

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/test/mainapp_test.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  ###
2
- ### $Release: 1.1.1 $
2
+ ### $Release: 1.2.0 $
3
3
  ### $Copyright: copyright(c) 2011-2021 kuwata-lab.com all rights reserved $
4
4
  ### $License: MIT License $
5
5
  ###
@@ -73,15 +73,6 @@ end
73
73
 
74
74
  END
75
75
 
76
- def plain2colored(str)
77
- str = str.gsub(/<R>(.*?)<\/R>/) { Oktest::Color.red($1) }
78
- str = str.gsub(/<G>(.*?)<\/G>/) { Oktest::Color.green($1) }
79
- str = str.gsub(/<B>(.*?)<\/B>/) { Oktest::Color.blue($1) }
80
- str = str.gsub(/<Y>(.*?)<\/Y>/) { Oktest::Color.yellow($1) }
81
- str = str.gsub(/<b>(.*?)<\/b>/) { Oktest::Color.bold($1) }
82
- return str
83
- end
84
-
85
76
  def edit_actual(output)
86
77
  bkup = output.dup
87
78
  output = output.gsub(/^.*\r/, '')
@@ -165,7 +156,7 @@ END
165
156
 
166
157
  it "[!18qpe] runs test scripts." do
167
158
  expected = <<'END'
168
- ## total:8 (<B>pass:4</B>, <R>fail:1</R>, <R>error:1</R>, <Y>skip:1</Y>, <Y>todo:1</Y>) in 0.000s
159
+ ## total:8 (<C>pass:4</C>, <R>fail:1</R>, <E>error:1</E>, <Y>skip:1</Y>, <Y>todo:1</Y>) in 0.000s
169
160
  END
170
161
  ret, sout, serr = run(@testfile)
171
162
  assert_eq ret, 2
@@ -180,7 +171,7 @@ END
180
171
 
181
172
  it "[!hiu5b] finds test scripts in directory and runs them." do
182
173
  expected = <<'END'
183
- ## total:8 (<B>pass:4</B>, <R>fail:1</R>, <R>error:1</R>, <Y>skip:1</Y>, <Y>todo:1</Y>) in 0.000s
174
+ ## total:8 (<C>pass:4</C>, <R>fail:1</R>, <E>error:1</E>, <Y>skip:1</Y>, <Y>todo:1</Y>) in 0.000s
184
175
  END
185
176
  dir = "_tmpdir.d"
186
177
  dirs = [dir, "#{dir}/d1", "#{dir}/d1/d2"]
@@ -196,6 +187,32 @@ END
196
187
  end
197
188
  end
198
189
 
190
+ it "[!v5xie] parses $OKTEST_RB environment variable." do
191
+ ret, sout, serr = run(@testfile, tty: false)
192
+ expected = plain2colored(<<'END')
193
+ ## _tmp_test.rb
194
+ * <b>Parent</b>
195
+ * <b>Child1</b>
196
+ - [<C>pass</C>] 1+1 should be 2
197
+ - [<C>pass</C>] 1-1 should be 0
198
+ END
199
+ assert sout.start_with?(expected), "expected verbose-style, but not."
200
+ #
201
+ begin
202
+ ENV['OKTEST_RB'] = "-ss"
203
+ ret, sout, serr = run(@testfile, tty: false)
204
+ expected = plain2colored(<<'END')
205
+ ## _tmp_test.rb
206
+ * <b>Parent</b>: <C>.</C><C>.</C>
207
+ * <b>Child1</b>: <C>.</C><C>.</C>
208
+ * <b>Child2</b>: <R>f</R><E>E</E>
209
+ END
210
+ assert sout.start_with?(expected), "expected simple-style, but not."
211
+ ensure
212
+ ENV.delete('OKTEST_RB')
213
+ end
214
+ end
215
+
199
216
  #HELP_MESSAGE = Oktest::MainApp::HELP_MESSAGE % {command: File.basename($0)}
200
217
  HELP_MESSAGE = <<"END"
201
218
  Usage: #{File.basename($0)} [<options>] [<file-or-directory>...]
@@ -204,9 +221,8 @@ Usage: #{File.basename($0)} [<options>] [<file-or-directory>...]
204
221
  -s <REPORT-STYLE> : verbose/simple/compact/plain/quiet, or v/s/c/p/q
205
222
  -F <PATTERN> : filter topic or spec with pattern (see below)
206
223
  --color[={on|off}] : enable/disable output coloring forcedly
207
- -C, --create : print test code skeleton
224
+ -S, --skeleton : print test code skeleton
208
225
  -G, --generate : generate test code skeleton from ruby file
209
- --faster : make 'ok{}' faster (for very large project)
210
226
 
211
227
  Filter examples:
212
228
  $ oktest -F topic=Hello # filter by topic
@@ -241,7 +257,7 @@ END
241
257
  end
242
258
 
243
259
  it "[!qqizl] '--version' option prints version number." do
244
- expected = '$Release: 1.1.1 $'.split()[1] + "\n"
260
+ expected = '$Release: 1.2.0 $'.split()[1] + "\n"
245
261
  #
246
262
  ret, sout, serr = run("--version")
247
263
  assert_eq ret, 0
@@ -254,11 +270,11 @@ END
254
270
  ## _tmp_test.rb
255
271
  * <b>Parent</b>
256
272
  * <b>Child1</b>
257
- - [<B>pass</B>] 1+1 should be 2
258
- - [<B>pass</B>] 1-1 should be 0
273
+ - [<C>pass</C>] 1+1 should be 2
274
+ - [<C>pass</C>] 1-1 should be 0
259
275
  * <b>Child2</b>
260
276
  - [<R>Fail</R>] 1*1 should be 1
261
- - [<R>ERROR</R>] 1/1 should be 1
277
+ - [<E>ERROR</E>] 1/1 should be 1
262
278
  ----------------------------------------------------------------------
263
279
  END
264
280
  #
@@ -276,9 +292,9 @@ END
276
292
  it "[!zfdr5] '-s simple' or '-ss' option prints test results in simple mode." do
277
293
  expected = <<END
278
294
  ## _tmp_test.rb
279
- * <b>Parent</b>: <B>.</B><B>.</B>
280
- * <b>Child1</b>: <B>.</B><B>.</B>
281
- * <b>Child2</b>: <R>f</R><R>E</R>
295
+ * <b>Parent</b>: <C>.</C><C>.</C>
296
+ * <b>Child1</b>: <C>.</C><C>.</C>
297
+ * <b>Child2</b>: <R>f</R><E>E</E>
282
298
  ----------------------------------------------------------------------
283
299
  END
284
300
  #
@@ -295,7 +311,7 @@ END
295
311
 
296
312
  it "[!ef5v7] '-s compact' or '-sc' option prints test results in compact mode." do
297
313
  expected = <<END
298
- #{@testfile}: <B>.</B><B>.</B><R>f</R><R>E</R><Y>s</Y><Y>t</Y><B>.</B><B>.</B>
314
+ #{@testfile}: <C>.</C><C>.</C><R>f</R><E>E</E><Y>s</Y><Y>t</Y><C>.</C><C>.</C>
299
315
  ----------------------------------------------------------------------
300
316
  END
301
317
  #
@@ -312,7 +328,7 @@ END
312
328
 
313
329
  it "[!244te] '-s plain' or '-sp' option prints test results in plain mode." do
314
330
  expected = <<END
315
- <B>.</B><B>.</B><R>f</R><R>E</R><Y>s</Y><Y>t</Y><B>.</B><B>.</B>
331
+ <C>.</C><C>.</C><R>f</R><E>E</E><Y>s</Y><Y>t</Y><C>.</C><C>.</C>
316
332
  ----------------------------------------------------------------------
317
333
  END
318
334
  #
@@ -329,7 +345,7 @@ END
329
345
 
330
346
  it "[!ai61w] '-s quiet' or '-sq' option prints test results in quiet mode." do
331
347
  expected = <<END
332
- <R>f</R><R>E</R><Y>s</Y><Y>t</Y>
348
+ <R>f</R><E>E</E><Y>s</Y><Y>t</Y>
333
349
  ----------------------------------------------------------------------
334
350
  END
335
351
  #
@@ -349,9 +365,9 @@ END
349
365
  ## _tmp_test.rb
350
366
  * <b>Parent</b>
351
367
  * <b>Child1</b>
352
- - [<B>pass</B>] 1+1 should be 2
353
- - [<B>pass</B>] 1-1 should be 0
354
- ## total:2 (<B>pass:2</B>, fail:0, error:0, skip:0, todo:0) in 0.000s
368
+ - [<C>pass</C>] 1+1 should be 2
369
+ - [<C>pass</C>] 1-1 should be 0
370
+ ## total:2 (<C>pass:2</C>, fail:0, error:0, skip:0, todo:0) in 0.000s
355
371
  END
356
372
  #
357
373
  ret, sout, serr = run("-F", "topic=Child1", @testfile)
@@ -365,8 +381,8 @@ END
365
381
  ## _tmp_test.rb
366
382
  * <b>Parent</b>
367
383
  * <b>Child1</b>
368
- - [<B>pass</B>] 1-1 should be 0
369
- ## total:1 (<B>pass:1</B>, fail:0, error:0, skip:0, todo:0) in 0.000s
384
+ - [<C>pass</C>] 1-1 should be 0
385
+ ## total:1 (<C>pass:1</C>, fail:0, error:0, skip:0, todo:0) in 0.000s
370
386
  END
371
387
  #
372
388
  ret, sout, serr = run("-F", "spec=*1-1*", @testfile)
@@ -380,13 +396,13 @@ END
380
396
  ## _tmp_test.rb
381
397
  * <b>Parent</b>
382
398
  * <b>Child1</b>
383
- - [<B>pass</B>] 1-1 should be 0
399
+ - [<C>pass</C>] 1-1 should be 0
384
400
  * <b>Child3</b>
385
401
  - [<Y>Skip</Y>] skip example <Y>(reason: a certain condition)</Y>
386
402
  - [<Y>TODO</Y>] todo example
387
403
  - <b>When x is negative</b>
388
- - [<B>pass</B>] [!6hs1j] x*x is positive.
389
- ## total:4 (<B>pass:2</B>, fail:0, error:0, <Y>skip:1</Y>, <Y>todo:1</Y>) in 0.000s
404
+ - [<C>pass</C>] [!6hs1j] x*x is positive.
405
+ ## total:4 (<C>pass:2</C>, fail:0, error:0, <Y>skip:1</Y>, <Y>todo:1</Y>) in 0.000s
390
406
  END
391
407
  #
392
408
  ret, sout, serr = run("-F", "tag={new,exp}", @testfile)
@@ -400,8 +416,8 @@ END
400
416
  ## _tmp_test.rb
401
417
  * <b>Parent</b>
402
418
  - <b>When x is negative</b>
403
- - [<B>pass</B>] [!6hs1j] x*x is positive.
404
- ## total:1 (<B>pass:1</B>, fail:0, error:0, skip:0, todo:0) in 0.000s
419
+ - [<C>pass</C>] [!6hs1j] x*x is positive.
420
+ ## total:1 (<C>pass:1</C>, fail:0, error:0, skip:0, todo:0) in 0.000s
405
421
  END
406
422
  #
407
423
  ret, sout, serr = run("-F", "sid=6hs1j", @testfile)
@@ -415,11 +431,11 @@ END
415
431
  ## _tmp_test.rb
416
432
  * <b>Parent</b>
417
433
  * <b>Child1</b>
418
- - [<B>pass</B>] 1+1 should be 2
419
- - [<B>pass</B>] 1-1 should be 0
434
+ - [<C>pass</C>] 1+1 should be 2
435
+ - [<C>pass</C>] 1-1 should be 0
420
436
  - <b>Else</b>
421
- - [<B>pass</B>] [!pwiq7] x*x is also positive.
422
- ## total:3 (<B>pass:3</B>, fail:0, error:0, skip:0, todo:0) in 0.000s
437
+ - [<C>pass</C>] [!pwiq7] x*x is also positive.
438
+ ## total:3 (<C>pass:3</C>, fail:0, error:0, skip:0, todo:0) in 0.000s
423
439
  END
424
440
  #
425
441
  ret, sout, serr = run("-F", "tag!={fail,err,exp}", @testfile)
@@ -450,7 +466,7 @@ END
450
466
  [true, false].each do |tty|
451
467
  Oktest::Config.color_enabled = bool
452
468
  _, sout, serr = run("--color=on", @testfile, tty: tty)
453
- assert sout.include?(edit_expected("[<B>pass</B>]")), "should contain blue string"
469
+ assert sout.include?(edit_expected("[<C>pass</C>]")), "should contain blue string"
454
470
  assert sout.include?(edit_expected("[<R>Fail</R>]")), "should contain red string"
455
471
  assert sout.include?(edit_expected("[<Y>Skip</Y>]")), "should contain yellos string"
456
472
  assert_eq serr, ""
@@ -463,7 +479,7 @@ END
463
479
  [true, false].each do |tty|
464
480
  Oktest::Config.color_enabled = bool
465
481
  _, sout, serr = run("--color", @testfile, tty: tty)
466
- assert sout.include?(edit_expected("[<B>pass</B>]")), "should contain blue string"
482
+ assert sout.include?(edit_expected("[<C>pass</C>]")), "should contain blue string"
467
483
  assert sout.include?(edit_expected("[<R>Fail</R>]")), "should contain red string"
468
484
  assert sout.include?(edit_expected("[<Y>Skip</Y>]")), "should contain yellos string"
469
485
  assert_eq serr, ""
@@ -476,7 +492,7 @@ END
476
492
  [true, false].each do |tty|
477
493
  Oktest::Config.color_enabled = bool
478
494
  _, sout, serr = run("--color=off", @testfile, tty: tty)
479
- assert !sout.include?(edit_expected("[<B>pass</B>]")), "should not contain blue string"
495
+ assert !sout.include?(edit_expected("[<C>pass</C>]")), "should not contain blue string"
480
496
  assert !sout.include?(edit_expected("[<R>Fail</R>]")), "should not contain red string"
481
497
  assert !sout.include?(edit_expected("[<Y>Skip</Y>]")), "should not contain yellos string"
482
498
  assert_eq serr, ""
@@ -490,8 +506,8 @@ END
490
506
  end
491
507
  end
492
508
 
493
- it "[!dk8eg] '-C' or '--create' option prints test code skeleton." do
494
- ret, sout, serr = run("-C")
509
+ it "[!dk8eg] '-S' or '--skeleton' option prints test code skeleton." do
510
+ ret, sout, serr = run("-S")
495
511
  assert_eq ret, 0
496
512
  assert_eq sout, Oktest::MainApp::SKELETON
497
513
  assert_eq serr, ""
data/test/matcher_test.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
3
  ###
4
- ### $Release: 1.1.1 $
4
+ ### $Release: 1.2.0 $
5
5
  ### $Copyright: copyright(c) 2011-2021 kuwata-lab.com all rights reserved $
6
6
  ### $License: MIT License $
7
7
  ###
data/test/misc_test.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
3
  ###
4
- ### $Release: 1.1.1 $
4
+ ### $Release: 1.2.0 $
5
5
  ### $Copyright: copyright(c) 2011-2021 kuwata-lab.com all rights reserved $
6
6
  ### $License: MIT License $
7
7
  ###
@@ -69,11 +69,11 @@ class Color_TC < TC
69
69
 
70
70
  describe '.status()' do
71
71
  it "[!yev5y] returns string containing color escape sequence." do
72
- assert_eq Oktest::Color.status(:PASS , "Pass" ), "\e[1;34mPass\e[0m"
73
- assert_eq Oktest::Color.status(:FAIL , "Fail" ), "\e[1;31mFail\e[0m"
72
+ assert_eq Oktest::Color.status(:PASS , "Pass" ), "\e[0;36mPass\e[0m"
73
+ assert_eq Oktest::Color.status(:FAIL , "Fail" ), "\e[0;31mFail\e[0m"
74
74
  assert_eq Oktest::Color.status(:ERROR, "Error"), "\e[1;31mError\e[0m"
75
- assert_eq Oktest::Color.status(:SKIP , "Skip" ), "\e[1;33mSkip\e[0m"
76
- assert_eq Oktest::Color.status(:TODO , "Todo" ), "\e[1;33mTodo\e[0m"
75
+ assert_eq Oktest::Color.status(:SKIP , "Skip" ), "\e[0;33mSkip\e[0m"
76
+ assert_eq Oktest::Color.status(:TODO , "Todo" ), "\e[0;33mTodo\e[0m"
77
77
  end
78
78
  end
79
79
 
data/test/node_test.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
3
  ###
4
- ### $Release: 1.1.1 $
4
+ ### $Release: 1.2.0 $
5
5
  ### $Copyright: copyright(c) 2011-2021 kuwata-lab.com all rights reserved $
6
6
  ### $License: MIT License $
7
7
  ###
@@ -315,13 +315,25 @@ class ScopeFunctions_TC < TC
315
315
  Oktest::THE_GLOBAL_SCOPE.clear_children()
316
316
  end
317
317
 
318
+ class DummyLocation # < Thread::Backtrace::Location
319
+ def initialize(string)
320
+ string =~ /([^:]+):(\d+)/
321
+ @path = $1
322
+ @lineno = $2
323
+ end
324
+ attr_reader :path, :lineno
325
+ end
326
+
318
327
  def with_dummy_location(location)
319
328
  $_dummy_location = location
320
329
  Oktest.module_eval do
321
330
  class << self
322
- def caller(n)
331
+ def caller(n, len=nil)
323
332
  return [$_dummy_location]
324
333
  end
334
+ def caller_locations(n, len=nil)
335
+ return [DummyLocation.new($_dummy_location)]
336
+ end
325
337
  end
326
338
  end
327
339
  yield
@@ -329,6 +341,7 @@ class ScopeFunctions_TC < TC
329
341
  Oktest.module_eval do
330
342
  class << self
331
343
  remove_method :caller
344
+ remove_method :caller_locations
332
345
  end
333
346
  end
334
347
  $_dummy_location = nil
@@ -533,6 +546,16 @@ class Context_TC < TC
533
546
  assert_eq sp.tag, "exp"
534
547
  assert_eq sp._prefix, "-"
535
548
  end
549
+ it "[!4vkbl] error when `fixture:` keyword arg is not a Hash object." do
550
+ new_node_with() do
551
+ spec "example #2", fixture: {x: 1} do end # not raise anything
552
+ end
553
+ assert_exc(ArgumentError, 'spec(fixture: "x: 1"): fixture argument should be a Hash object, but got String object.') do
554
+ new_node_with() do
555
+ spec "example #2", fixture: "x: 1" do end
556
+ end
557
+ end
558
+ end
536
559
  it "[!ala78] provides raising TodoException block if block not given." do
537
560
  node = new_node_with() do
538
561
  spec "example #3"
@@ -552,7 +575,7 @@ class Context_TC < TC
552
575
  sp1, sp2 = node.each_child.to_a
553
576
  assert_eq sp1.location, nil
554
577
  assert sp2.location != nil, "not nil"
555
- assert sp2.location.start_with?("#{__FILE__}:#{lineno}:in")
578
+ assert sp2.location.to_s.start_with?("#{__FILE__}:#{lineno}:in")
556
579
  end
557
580
  end
558
581
 
@@ -568,7 +591,7 @@ class Context_TC < TC
568
591
  assert node.fixtures.key?(:alice), "key not registerd"
569
592
  assert node.fixtures[:alice][0].is_a?(Proc), "block expected"
570
593
  assert_eq node.fixtures[:alice][1], nil
571
- assert node.fixtures[:alice][2].start_with?("#{__FILE__}:#{lineno}:in ")
594
+ assert node.fixtures[:alice][2].to_s.start_with?("#{__FILE__}:#{lineno}:in ")
572
595
  end
573
596
  it "[!y3ks3] retrieves block parameter names." do
574
597
  node = new_node_with() do
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
3
  ###
4
- ### $Release: 1.1.1 $
4
+ ### $Release: 1.2.0 $
5
5
  ### $Copyright: copyright(c) 2011-2021 kuwata-lab.com all rights reserved $
6
6
  ### $License: MIT License $
7
7
  ###
@@ -11,15 +11,6 @@ require_relative './initialize'
11
11
 
12
12
  module ReporterTestHelper
13
13
 
14
- def plain2colored(str)
15
- str = str.gsub(/<R>(.*?)<\/R>/) { Oktest::Color.red($1) }
16
- str = str.gsub(/<G>(.*?)<\/G>/) { Oktest::Color.green($1) }
17
- str = str.gsub(/<B>(.*?)<\/B>/) { Oktest::Color.blue($1) }
18
- str = str.gsub(/<Y>(.*?)<\/Y>/) { Oktest::Color.yellow($1) }
19
- str = str.gsub(/<b>(.*?)<\/b>/) { Oktest::Color.bold($1) }
20
- return str
21
- end
22
-
23
14
  def edit_actual(output)
24
15
  bkup = output.dup
25
16
  output = output.gsub(/^.*\r/, '')
@@ -145,7 +136,11 @@ class BaseReporter_TC < TC
145
136
  sout, serr = capture do
146
137
  r.__send__(:print_exc_message, exc, :FAIL)
147
138
  end
148
- assert_eq sout, errmsg
139
+ assert_eq sout, plain2colored(<<END)
140
+ <R>something failed</R>
141
+ expect: foo
142
+ actual: bar
143
+ END
149
144
  assert_eq serr, ""
150
145
  end
151
146
  it "[!pd41p] prints detail of exception." do
@@ -155,7 +150,11 @@ class BaseReporter_TC < TC
155
150
  sout, serr = capture do
156
151
  r.__send__(:print_exc_message, exc, :ERROR)
157
152
  end
158
- assert_eq sout, "Oktest::AssertionFailed: "+errmsg
153
+ assert_eq sout, plain2colored(<<END)
154
+ <R>Oktest::AssertionFailed: something failed</R>
155
+ expect: foo
156
+ actual: bar
157
+ END
159
158
  assert_eq serr, ""
160
159
  end
161
160
  end
@@ -246,7 +245,7 @@ END
246
245
  end
247
246
  #
248
247
  expected = <<END
249
- [<R>ERROR</R>] <b>Example > Array > When some condition > 1+1 shoould be 2.</b>
248
+ [<E>ERROR</E>] <b>Example > Array > When some condition > 1+1 shoould be 2.</b>
250
249
  #{__FILE__}:#{lineno}:in `/'
251
250
  1/0
252
251
  END
@@ -283,7 +282,7 @@ END
283
282
  r = new_reporter_with_exceptions(exc)
284
283
  sep = "----------------------------------------------------------------------\n"
285
284
  expected1 = "[<R>Fail</R>] <b>Example > Array > When some condition > 1+1 shoould be 2.</b>\n"
286
- expected2 = "[<R>ERROR</R>] <b>Example > Array > When some condition > 1+1 shoould be 2.</b>\n"
285
+ expected2 = "[<E>ERROR</E>] <b>Example > Array > When some condition > 1+1 shoould be 2.</b>\n"
287
286
  #
288
287
  sout, serr = capture { r.__send__(:print_exceptions) }
289
288
  assert sout.start_with?(sep + plain2colored(expected1)), "not matched"
@@ -349,7 +348,7 @@ END
349
348
  end
350
349
 
351
350
  it "[!gx0n2] builds footer line." do
352
- expected = "## total:15 (<B>pass:5</B>, <R>fail:4</R>, <R>error:3</R>, <Y>skip:2</Y>, <Y>todo:1</Y>) in 0.500s"
351
+ expected = "## total:15 (<C>pass:5</C>, <R>fail:4</R>, <E>error:3</E>, <Y>skip:2</Y>, <Y>todo:1</Y>) in 0.500s"
353
352
  assert new_footer(), plain2colored(expected)
354
353
  end
355
354
  end
@@ -434,49 +433,49 @@ END
434
433
  _test.tmp:18:in `block (4 levels) in <top (required)>'
435
434
  ok {1*1} == 2
436
435
  %%%
437
- $<actual> == $<expected>: failed.
436
+ <R>$<actual> == $<expected>: failed.</R>
438
437
  $<actual>: 1
439
438
  $<expected>: 2
440
439
  ----------------------------------------------------------------------
441
- [<R>ERROR</R>] <b>Parent > Child2 > 1/1 should be 1</b>
440
+ [<E>ERROR</E>] <b>Parent > Child2 > 1/1 should be 1</b>
442
441
  _test.tmp:21:in `/'
443
442
  ok {1/0} == 1
444
443
  %%%
445
- ZeroDivisionError: divided by 0
444
+ <R>ZeroDivisionError: divided by 0</R>
446
445
  ----------------------------------------------------------------------
447
446
  END
448
447
 
449
448
  FOOTER = <<'END'
450
- ## total:9 (<B>pass:5</B>, <R>fail:1</R>, <R>error:1</R>, <Y>skip:1</Y>, <Y>todo:1</Y>) in 0.000s
449
+ ## total:9 (<C>pass:5</C>, <R>fail:1</R>, <E>error:1</E>, <Y>skip:1</Y>, <Y>todo:1</Y>) in 0.000s
451
450
  END
452
451
 
453
452
  VERBOSE_PART = <<'END'
454
453
  ## _test.tmp
455
454
  * <b>Parent</b>
456
455
  * <b>Child1</b>
457
- - [<B>pass</B>] 1+1 should be 2
458
- - [<B>pass</B>] 1-1 should be 0
456
+ - [<C>pass</C>] 1+1 should be 2
457
+ - [<C>pass</C>] 1-1 should be 0
459
458
  * <b>Child2</b>
460
459
  - [<R>Fail</R>] 1*1 should be 1
461
- - [<R>ERROR</R>] 1/1 should be 1
460
+ - [<E>ERROR</E>] 1/1 should be 1
462
461
  END
463
462
  VERBOSE_PART2 = <<'END'
464
463
  * <b>Child3</b>
465
464
  - [<Y>Skip</Y>] skip example <Y>(reason: a certain condition)</Y>
466
465
  - [<Y>TODO</Y>] todo example
467
466
  - <b>When x is negative</b>
468
- - [<B>pass</B>] x*x is positive.
467
+ - [<C>pass</C>] x*x is positive.
469
468
  - <b>Else</b>
470
- - [<B>pass</B>] x*x is also positive.
471
- - [<B>pass</B>] last spec
469
+ - [<C>pass</C>] x*x is also positive.
470
+ - [<C>pass</C>] last spec
472
471
  END
473
472
  VERBOSE_OUTPUT = VERBOSE_PART + ERROR_PART + VERBOSE_PART2 + FOOTER
474
473
 
475
474
  SIMPLE_PART = <<'END'
476
475
  ## _test.tmp
477
- * <b>Parent</b>: <B>.</B><B>.</B><B>.</B>
478
- * <b>Child1</b>: <B>.</B><B>.</B>
479
- * <b>Child2</b>: <R>f</R><R>E</R>
476
+ * <b>Parent</b>: <C>.</C><C>.</C><C>.</C>
477
+ * <b>Child1</b>: <C>.</C><C>.</C>
478
+ * <b>Child2</b>: <R>f</R><E>E</E>
480
479
  END
481
480
  SIMPLE_PART2 = <<'END'
482
481
  * <b>Child3</b>: <Y>s</Y><Y>t</Y>
@@ -484,17 +483,17 @@ END
484
483
  SIMPLE_OUTPUT = SIMPLE_PART + ERROR_PART + SIMPLE_PART2 + FOOTER
485
484
 
486
485
  COMPACT_PART = <<'END'
487
- _test.tmp: <B>.</B><B>.</B><R>f</R><R>E</R><Y>s</Y><Y>t</Y><B>.</B><B>.</B><B>.</B>
486
+ _test.tmp: <C>.</C><C>.</C><R>f</R><E>E</E><Y>s</Y><Y>t</Y><C>.</C><C>.</C><C>.</C>
488
487
  END
489
488
  COMPACT_OUTPUT = COMPACT_PART + ERROR_PART + FOOTER
490
489
 
491
490
  PLAIN_PART = <<'END'
492
- <B>.</B><B>.</B><R>f</R><R>E</R><Y>s</Y><Y>t</Y><B>.</B><B>.</B><B>.</B>
491
+ <C>.</C><C>.</C><R>f</R><E>E</E><Y>s</Y><Y>t</Y><C>.</C><C>.</C><C>.</C>
493
492
  END
494
493
  PLAIN_OUTPUT = PLAIN_PART + ERROR_PART + FOOTER
495
494
 
496
495
  QUIET_PART = <<'END'
497
- <R>f</R><R>E</R><Y>s</Y><Y>t</Y>
496
+ <R>f</R><E>E</E><Y>s</Y><Y>t</Y>
498
497
  END
499
498
  QUIET_OUTPUT = QUIET_PART + ERROR_PART + FOOTER
500
499
 
data/test/runner_test.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
3
  ###
4
- ### $Release: 1.1.1 $
4
+ ### $Release: 1.2.0 $
5
5
  ### $Copyright: copyright(c) 2011-2021 kuwata-lab.com all rights reserved $
6
6
  ### $License: MIT License $
7
7
  ###
@@ -521,15 +521,6 @@ class RunnerFunctions_TC < TC
521
521
  Oktest::THE_GLOBAL_SCOPE.clear_children()
522
522
  end
523
523
 
524
- def plain2colored(str)
525
- str = str.gsub(/<R>(.*?)<\/R>/) { Oktest::Color.red($1) }
526
- str = str.gsub(/<G>(.*?)<\/G>/) { Oktest::Color.green($1) }
527
- str = str.gsub(/<B>(.*?)<\/B>/) { Oktest::Color.blue($1) }
528
- str = str.gsub(/<Y>(.*?)<\/Y>/) { Oktest::Color.yellow($1) }
529
- str = str.gsub(/<b>(.*?)<\/b>/) { Oktest::Color.bold($1) }
530
- return str
531
- end
532
-
533
524
  def edit_actual(output)
534
525
  bkup = output.dup
535
526
  output = output.gsub(/^.*\r/, '')
@@ -561,17 +552,17 @@ class RunnerFunctions_TC < TC
561
552
  VERBOSE_OUTPUT = <<'END'
562
553
  ## test/runner_test.rb
563
554
  * <b>Example</b>
564
- - [<B>pass</B>] 1+1 should be 2
565
- - [<B>pass</B>] 1-1 should be 0
566
- ## total:2 (<B>pass:2</B>, fail:0, error:0, skip:0, todo:0) in 0.000s
555
+ - [<C>pass</C>] 1+1 should be 2
556
+ - [<C>pass</C>] 1-1 should be 0
557
+ ## total:2 (<C>pass:2</C>, fail:0, error:0, skip:0, todo:0) in 0.000s
567
558
  END
568
559
  COMPACT_OUTPUT = <<'END'
569
- test/runner_test.rb: <B>.</B><B>.</B>
570
- ## total:2 (<B>pass:2</B>, fail:0, error:0, skip:0, todo:0) in 0.000s
560
+ test/runner_test.rb: <C>.</C><C>.</C>
561
+ ## total:2 (<C>pass:2</C>, fail:0, error:0, skip:0, todo:0) in 0.000s
571
562
  END
572
563
  PLAIN_OUTPUT = <<'END'
573
- <B>.</B><B>.</B>
574
- ## total:2 (<B>pass:2</B>, fail:0, error:0, skip:0, todo:0) in 0.000s
564
+ <C>.</C><C>.</C>
565
+ ## total:2 (<C>pass:2</C>, fail:0, error:0, skip:0, todo:0) in 0.000s
575
566
  END
576
567
 
577
568
 
data/test/tc.rb CHANGED
@@ -109,6 +109,18 @@ class TC
109
109
  $stdin, $stdout, $stderr = stdin, stdout, stderr
110
110
  end
111
111
 
112
+ def plain2colored(str)
113
+ str = str.gsub(/<R>(.*?)<\/R>/) { Oktest::Color.red($1) }
114
+ str = str.gsub(/<G>(.*?)<\/G>/) { Oktest::Color.green($1) }
115
+ str = str.gsub(/<B>(.*?)<\/B>/) { Oktest::Color.blue($1) }
116
+ str = str.gsub(/<C>(.*?)<\/C>/) { Oktest::Color.cyan($1) }
117
+ str = str.gsub(/<M>(.*?)<\/M>/) { Oktest::Color.magenta($1) }
118
+ str = str.gsub(/<Y>(.*?)<\/Y>/) { Oktest::Color.yellow($1) }
119
+ str = str.gsub(/<b>(.*?)<\/b>/) { Oktest::Color.bold($1) }
120
+ str = str.gsub(/<E>(.*?)<\/E>/) { Oktest::Color.red_b($1) }
121
+ return str
122
+ end
123
+
112
124
  end
113
125
 
114
126