oktest 1.0.0 → 1.1.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.
- checksums.yaml +4 -4
- data/README.md +287 -51
- data/Rakefile.rb +1 -1
- data/lib/oktest.rb +393 -19
- data/oktest.gemspec +2 -2
- data/test/assertion_test.rb +70 -5
- data/test/filter_test.rb +2 -2
- data/test/fixture_test.rb +1 -1
- data/test/generator_test.rb +1 -1
- data/test/helper_test.rb +1 -1
- data/test/initialize.rb +8 -1
- data/test/mainapp_test.rb +42 -5
- data/test/matcher_test.rb +424 -0
- data/test/misc_test.rb +1 -1
- data/test/node_test.rb +34 -1
- data/test/reporter_test.rb +34 -6
- data/test/runner_test.rb +90 -9
- data/test/util_test.rb +1 -1
- data/test/visitor_test.rb +1 -1
- metadata +3 -2
data/test/misc_test.rb
CHANGED
data/test/node_test.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
|
3
3
|
###
|
4
|
-
### $Release: 1.
|
4
|
+
### $Release: 1.1.1 $
|
5
5
|
### $Copyright: copyright(c) 2011-2021 kuwata-lab.com all rights reserved $
|
6
6
|
### $License: MIT License $
|
7
7
|
###
|
@@ -315,6 +315,25 @@ class ScopeFunctions_TC < TC
|
|
315
315
|
Oktest::THE_GLOBAL_SCOPE.clear_children()
|
316
316
|
end
|
317
317
|
|
318
|
+
def with_dummy_location(location)
|
319
|
+
$_dummy_location = location
|
320
|
+
Oktest.module_eval do
|
321
|
+
class << self
|
322
|
+
def caller(n)
|
323
|
+
return [$_dummy_location]
|
324
|
+
end
|
325
|
+
end
|
326
|
+
end
|
327
|
+
yield
|
328
|
+
ensure
|
329
|
+
Oktest.module_eval do
|
330
|
+
class << self
|
331
|
+
remove_method :caller
|
332
|
+
end
|
333
|
+
end
|
334
|
+
$_dummy_location = nil
|
335
|
+
end
|
336
|
+
|
318
337
|
describe 'Oktest.scope()' do
|
319
338
|
it "[!vxoy1] creates new scope object." do
|
320
339
|
x = Oktest.scope() { nil }
|
@@ -341,6 +360,20 @@ class ScopeFunctions_TC < TC
|
|
341
360
|
assert_eq Oktest::THE_GLOBAL_SCOPE.has_child?, true
|
342
361
|
assert_eq Oktest::THE_GLOBAL_SCOPE.each_child.to_a, [so]
|
343
362
|
end
|
363
|
+
it "[!kem4y] detects test script filename." do
|
364
|
+
sc = Oktest.scope() { nil }
|
365
|
+
assert_eq sc.filename, "test/node_test.rb"
|
366
|
+
end
|
367
|
+
it "[!6ullm] changes test script filename from absolute path to relative path." do
|
368
|
+
with_dummy_location(Dir.pwd + "/tests/foo_test.rb:123") do
|
369
|
+
sc = Oktest.scope() { nil }
|
370
|
+
assert_eq sc.filename, "tests/foo_test.rb"
|
371
|
+
end
|
372
|
+
with_dummy_location("./t/bar_test.rb:456") do
|
373
|
+
sc = Oktest.scope() { nil }
|
374
|
+
assert_eq sc.filename, "t/bar_test.rb"
|
375
|
+
end
|
376
|
+
end
|
344
377
|
end
|
345
378
|
|
346
379
|
describe '#global_scope()' do
|
data/test/reporter_test.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
|
3
3
|
###
|
4
|
-
### $Release: 1.
|
4
|
+
### $Release: 1.1.1 $
|
5
5
|
### $Copyright: copyright(c) 2011-2021 kuwata-lab.com all rights reserved $
|
6
6
|
### $License: MIT License $
|
7
7
|
###
|
@@ -418,6 +418,10 @@ Oktest.scope do
|
|
418
418
|
end
|
419
419
|
end
|
420
420
|
|
421
|
+
spec "last spec" do
|
422
|
+
ok {1+1} == 2
|
423
|
+
end
|
424
|
+
|
421
425
|
end
|
422
426
|
|
423
427
|
end
|
@@ -443,10 +447,11 @@ ZeroDivisionError: divided by 0
|
|
443
447
|
END
|
444
448
|
|
445
449
|
FOOTER = <<'END'
|
446
|
-
## total:
|
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
|
447
451
|
END
|
448
452
|
|
449
453
|
VERBOSE_PART = <<'END'
|
454
|
+
## _test.tmp
|
450
455
|
* <b>Parent</b>
|
451
456
|
* <b>Child1</b>
|
452
457
|
- [<B>pass</B>] 1+1 should be 2
|
@@ -463,16 +468,28 @@ END
|
|
463
468
|
- [<B>pass</B>] x*x is positive.
|
464
469
|
- <b>Else</b>
|
465
470
|
- [<B>pass</B>] x*x is also positive.
|
471
|
+
- [<B>pass</B>] last spec
|
466
472
|
END
|
467
473
|
VERBOSE_OUTPUT = VERBOSE_PART + ERROR_PART + VERBOSE_PART2 + FOOTER
|
468
474
|
|
469
475
|
SIMPLE_PART = <<'END'
|
470
|
-
_test.tmp
|
476
|
+
## _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>
|
471
480
|
END
|
472
|
-
|
481
|
+
SIMPLE_PART2 = <<'END'
|
482
|
+
* <b>Child3</b>: <Y>s</Y><Y>t</Y>
|
483
|
+
END
|
484
|
+
SIMPLE_OUTPUT = SIMPLE_PART + ERROR_PART + SIMPLE_PART2 + FOOTER
|
485
|
+
|
486
|
+
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>
|
488
|
+
END
|
489
|
+
COMPACT_OUTPUT = COMPACT_PART + ERROR_PART + FOOTER
|
473
490
|
|
474
491
|
PLAIN_PART = <<'END'
|
475
|
-
<B>.</B><B>.</B><R>f</R><R>E</R><Y>s</Y><Y>t</Y><B>.</B><B>.</B>
|
492
|
+
<B>.</B><B>.</B><R>f</R><R>E</R><Y>s</Y><Y>t</Y><B>.</B><B>.</B><B>.</B>
|
476
493
|
END
|
477
494
|
PLAIN_OUTPUT = PLAIN_PART + ERROR_PART + FOOTER
|
478
495
|
|
@@ -516,7 +533,7 @@ end
|
|
516
533
|
|
517
534
|
class SimpleReporter_TC < Reporter_TC
|
518
535
|
|
519
|
-
it "[!
|
536
|
+
it "[!jxa1b] reports topics and progress." do
|
520
537
|
sout, serr = run("-ss", @filename)
|
521
538
|
assert_eq edit_actual(sout), edit_expected(SIMPLE_OUTPUT)
|
522
539
|
assert_eq serr, ""
|
@@ -525,6 +542,17 @@ class SimpleReporter_TC < Reporter_TC
|
|
525
542
|
end
|
526
543
|
|
527
544
|
|
545
|
+
class CompactReporter_TC < Reporter_TC
|
546
|
+
|
547
|
+
it "[!xfd5o] reports filename." do
|
548
|
+
sout, serr = run("-sc", @filename)
|
549
|
+
assert_eq edit_actual(sout), edit_expected(COMPACT_OUTPUT)
|
550
|
+
assert_eq serr, ""
|
551
|
+
end
|
552
|
+
|
553
|
+
end
|
554
|
+
|
555
|
+
|
528
556
|
class PlainReporter_TC < Reporter_TC
|
529
557
|
|
530
558
|
it "[!w842j] reports progress." do
|
data/test/runner_test.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
|
3
3
|
###
|
4
|
-
### $Release: 1.
|
4
|
+
### $Release: 1.1.1 $
|
5
5
|
### $Copyright: copyright(c) 2011-2021 kuwata-lab.com all rights reserved $
|
6
6
|
### $License: MIT License $
|
7
7
|
###
|
@@ -44,6 +44,10 @@ class Runner_TC < TC
|
|
44
44
|
def counts; {}; end
|
45
45
|
end
|
46
46
|
|
47
|
+
class DummyReporter2 < DummyReporter
|
48
|
+
def order_policy; :spec_first; end
|
49
|
+
end
|
50
|
+
|
47
51
|
describe "#start()" do
|
48
52
|
build_topics = proc {
|
49
53
|
Oktest.scope do
|
@@ -389,6 +393,47 @@ topic: "Parent"
|
|
389
393
|
/topic
|
390
394
|
[all] after_all
|
391
395
|
/file
|
396
|
+
END
|
397
|
+
assert_eq sout, expected
|
398
|
+
assert_eq serr, ""
|
399
|
+
end
|
400
|
+
it "[!p3a5o] run specs and case_when in advance of specs and topics when SimpleReporter." do
|
401
|
+
sout, serr = capture do
|
402
|
+
Oktest.scope do
|
403
|
+
topic "T1" do
|
404
|
+
topic "T2" do
|
405
|
+
spec("S1") { ok {1+1} == 2 }
|
406
|
+
end
|
407
|
+
spec("S2") { ok {1+1} == 2 }
|
408
|
+
topic "T3" do
|
409
|
+
spec("S3") { ok {1+1} == 2 }
|
410
|
+
end
|
411
|
+
case_when "T4" do
|
412
|
+
spec("S4") { ok {1+1} == 2 }
|
413
|
+
end
|
414
|
+
end
|
415
|
+
end
|
416
|
+
Oktest::Runner.new(DummyReporter2.new).start()
|
417
|
+
end
|
418
|
+
expected = <<'END'
|
419
|
+
file: "test/runner_test.rb"
|
420
|
+
topic: "T1"
|
421
|
+
spec: "S2"
|
422
|
+
/spec: status=:PASS
|
423
|
+
topic: "When T4"
|
424
|
+
spec: "S4"
|
425
|
+
/spec: status=:PASS
|
426
|
+
/topic
|
427
|
+
topic: "T2"
|
428
|
+
spec: "S1"
|
429
|
+
/spec: status=:PASS
|
430
|
+
/topic
|
431
|
+
topic: "T3"
|
432
|
+
spec: "S3"
|
433
|
+
/spec: status=:PASS
|
434
|
+
/topic
|
435
|
+
/topic
|
436
|
+
/file
|
392
437
|
END
|
393
438
|
assert_eq sout, expected
|
394
439
|
assert_eq serr, ""
|
@@ -417,6 +462,46 @@ file: "test/runner_test.rb"
|
|
417
462
|
[all] before_all#2
|
418
463
|
[all] after_all#2
|
419
464
|
/file
|
465
|
+
END
|
466
|
+
assert_eq sout, expected
|
467
|
+
assert_eq serr, ""
|
468
|
+
end
|
469
|
+
it "[!c5cw0] run specs and case_when in advance of specs and topics when SimpleReporter." do
|
470
|
+
sout, serr = capture do
|
471
|
+
Oktest.scope do
|
472
|
+
topic "T1" do
|
473
|
+
spec("S1") { ok {1+1} == 2 }
|
474
|
+
end
|
475
|
+
spec("S2") { ok {1+1} == 2 }
|
476
|
+
case_when "T2" do
|
477
|
+
spec("S3") { ok {1+1} == 2 }
|
478
|
+
end
|
479
|
+
topic "T3" do
|
480
|
+
spec("S4") { ok {1+1} == 2 }
|
481
|
+
end
|
482
|
+
spec("S5") { ok {1+1} == 2 }
|
483
|
+
end
|
484
|
+
Oktest::Runner.new(DummyReporter2.new).start()
|
485
|
+
end
|
486
|
+
expected = <<'END'
|
487
|
+
file: "test/runner_test.rb"
|
488
|
+
spec: "S2"
|
489
|
+
/spec: status=:PASS
|
490
|
+
topic: "When T2"
|
491
|
+
spec: "S3"
|
492
|
+
/spec: status=:PASS
|
493
|
+
/topic
|
494
|
+
spec: "S5"
|
495
|
+
/spec: status=:PASS
|
496
|
+
topic: "T1"
|
497
|
+
spec: "S1"
|
498
|
+
/spec: status=:PASS
|
499
|
+
/topic
|
500
|
+
topic: "T3"
|
501
|
+
spec: "S4"
|
502
|
+
/spec: status=:PASS
|
503
|
+
/topic
|
504
|
+
/file
|
420
505
|
END
|
421
506
|
assert_eq sout, expected
|
422
507
|
assert_eq serr, ""
|
@@ -474,12 +559,13 @@ class RunnerFunctions_TC < TC
|
|
474
559
|
end
|
475
560
|
|
476
561
|
VERBOSE_OUTPUT = <<'END'
|
562
|
+
## test/runner_test.rb
|
477
563
|
* <b>Example</b>
|
478
564
|
- [<B>pass</B>] 1+1 should be 2
|
479
565
|
- [<B>pass</B>] 1-1 should be 0
|
480
566
|
## total:2 (<B>pass:2</B>, fail:0, error:0, skip:0, todo:0) in 0.000s
|
481
567
|
END
|
482
|
-
|
568
|
+
COMPACT_OUTPUT = <<'END'
|
483
569
|
test/runner_test.rb: <B>.</B><B>.</B>
|
484
570
|
## total:2 (<B>pass:2</B>, fail:0, error:0, skip:0, todo:0) in 0.000s
|
485
571
|
END
|
@@ -497,11 +583,6 @@ END
|
|
497
583
|
assert_eq edit_actual(sout), edit_expected(expected)
|
498
584
|
assert_eq serr, ""
|
499
585
|
end
|
500
|
-
it "[!kfi8b] do nothing when 'Oktest.scope()' not called." do
|
501
|
-
sout, serr = capture { Oktest.run() }
|
502
|
-
assert_eq sout, ""
|
503
|
-
assert_eq serr, ""
|
504
|
-
end
|
505
586
|
it "[!6xn3t] creates reporter object according to 'style:' keyword arg." do
|
506
587
|
expected = VERBOSE_OUTPUT
|
507
588
|
prepare()
|
@@ -509,9 +590,9 @@ END
|
|
509
590
|
assert_eq edit_actual(sout), edit_expected(expected)
|
510
591
|
assert_eq serr, ""
|
511
592
|
#
|
512
|
-
expected =
|
593
|
+
expected = COMPACT_OUTPUT
|
513
594
|
prepare()
|
514
|
-
sout, serr = capture { Oktest.run(:style=>"
|
595
|
+
sout, serr = capture { Oktest.run(:style=>"compact") }
|
515
596
|
assert_eq edit_actual(sout), edit_expected(expected)
|
516
597
|
assert_eq serr, ""
|
517
598
|
#
|
data/test/util_test.rb
CHANGED
data/test/visitor_test.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oktest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kwatch
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-09-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: diff-lcs
|
@@ -70,6 +70,7 @@ files:
|
|
70
70
|
- test/helper_test.rb
|
71
71
|
- test/initialize.rb
|
72
72
|
- test/mainapp_test.rb
|
73
|
+
- test/matcher_test.rb
|
73
74
|
- test/misc_test.rb
|
74
75
|
- test/node_test.rb
|
75
76
|
- test/reporter_test.rb
|