oktest 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/README.md +41 -38
- data/Rakefile.rb +1 -1
- data/lib/oktest.rb +14 -5
- data/oktest.gemspec +2 -2
- data/test/assertion_test.rb +1 -1
- data/test/filter_test.rb +1 -1
- 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 +1 -1
- data/test/mainapp_test.rb +2 -2
- data/test/misc_test.rb +1 -1
- data/test/node_test.rb +34 -1
- data/test/reporter_test.rb +1 -1
- data/test/runner_test.rb +1 -1
- data/test/util_test.rb +1 -1
- data/test/visitor_test.rb +1 -1
- metadata +7 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 85ba9a1ce70926dbbda6667f83b5a906dac24920
|
4
|
+
data.tar.gz: 8f0df1c0b9c5e64489acca1623a29f3408ef8e63
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 754daad82635ae4567fcd25b2642800ade34dd8bd039a32094f33d4020b89b54d41756a119ed2bf6e8d4d40cfba06c01277a90a8af8c774054dd373ee6fb9ba7
|
7
|
+
data.tar.gz: 3485c071be7c77beac3a64a34871f4063cf3fb1d91797f2b180fc8db28e685dd9f9a6bfa905c8185764f876bb1b736d5599c1a5cec1f4f74c25e53893712adb2
|
data/README.md
CHANGED
@@ -54,7 +54,7 @@ Oktest.rb requires Ruby 2.3 or later.
|
|
54
54
|
* <a href="#install">Install</a>
|
55
55
|
* <a href="#basic-example">Basic Example</a>
|
56
56
|
* <a href="#assertion-failure-and-error">Assertion Failure, and Error</a>
|
57
|
-
* <a href="#skip-and-todo">Skip
|
57
|
+
* <a href="#skip-and-todo">Skip and Todo</a>
|
58
58
|
* <a href="#reporting-style">Reporting Style</a>
|
59
59
|
* <a href="#run-all-test-scripts-under-directory">Run All Test Scripts Under Directory</a>
|
60
60
|
* <a href="#tag-and-filtering">Tag and Filtering</a>
|
@@ -172,6 +172,10 @@ $ oktest test/example01_test.rb # or: ruby test/example01_test.rb
|
|
172
172
|
## total:2 (pass:2, fail:0, error:0, skip:0, todo:0) in 0.000s
|
173
173
|
```
|
174
174
|
|
175
|
+
For accessibility reason, Oktest.rb prints passed test cases in blue color
|
176
|
+
instead of green color.
|
177
|
+
See https://accessibility.psu.edu/color/colorcoding/#RB for details.
|
178
|
+
|
175
179
|
|
176
180
|
### Assertion Failure, and Error
|
177
181
|
|
@@ -207,14 +211,14 @@ $ oktest test/example02_test.rb # or: ruby test/example02_test.rb
|
|
207
211
|
- [ERROR] example of something error
|
208
212
|
----------------------------------------------------------------------
|
209
213
|
[Fail] other examples > example of assertion failure
|
210
|
-
|
214
|
+
test/example02_test.rb:9:in `block (3 levels) in <main>'
|
211
215
|
ok {1+1} == 0 # FAIL
|
212
216
|
$<actual> == $<expected>: failed.
|
213
217
|
$<actual>: 2
|
214
218
|
$<expected>: 0
|
215
219
|
----------------------------------------------------------------------
|
216
220
|
[ERROR] other examples > example of something error
|
217
|
-
|
221
|
+
test/example02_test.rb:13:in `block (3 levels) in <main>'
|
218
222
|
x = foobar # NameError
|
219
223
|
NameError: undefined local variable or method `foobar' for #<#<Class:...>:...>
|
220
224
|
----------------------------------------------------------------------
|
@@ -222,7 +226,7 @@ NameError: undefined local variable or method `foobar' for #<#<Class:...>:...>
|
|
222
226
|
```
|
223
227
|
|
224
228
|
|
225
|
-
### Skip
|
229
|
+
### Skip and Todo
|
226
230
|
|
227
231
|
test/example03_test.rb:
|
228
232
|
|
@@ -317,15 +321,15 @@ very useful for large project which contains large number of test cases.
|
|
317
321
|
How to run test scripts under `test` directory:
|
318
322
|
|
319
323
|
```terminal
|
320
|
-
$ ls test
|
324
|
+
$ ls test/
|
321
325
|
example01_test.rb example02_test.rb example03_test.rb
|
322
326
|
|
323
327
|
$ oktest -s simple test # or: ruby -r oktest -e 'Oktest.main' -- test -s simple
|
324
|
-
|
325
|
-
|
328
|
+
test/example01_test.rb: ..
|
329
|
+
test/example02_test.rb: fE
|
326
330
|
----------------------------------------------------------------------
|
327
331
|
[Fail] other examples > example of assertion failure
|
328
|
-
|
332
|
+
test/example02_test.rb:9:in `block (3 levels) in <top (required)>'
|
329
333
|
ok {1+1} == 0 # FAIL
|
330
334
|
-e:1:in `<main>'
|
331
335
|
$<actual> == $<expected>: failed.
|
@@ -333,12 +337,12 @@ $<actual> == $<expected>: failed.
|
|
333
337
|
$<expected>: 0
|
334
338
|
----------------------------------------------------------------------
|
335
339
|
[ERROR] other examples > example of something error
|
336
|
-
|
340
|
+
test/example02_test.rb:13:in `block (3 levels) in <top (required)>'
|
337
341
|
x = foobar # NameError
|
338
342
|
-e:1:in `<main>'
|
339
343
|
NameError: undefined local variable or method `foobar' for #<#<Class:...>:...>
|
340
344
|
----------------------------------------------------------------------
|
341
|
-
|
345
|
+
test/example03_test.rb: st
|
342
346
|
## total:6 (pass:2, fail:1, error:1, skip:1, todo:1) in 0.000s
|
343
347
|
```
|
344
348
|
|
@@ -348,7 +352,8 @@ Test script filename should be `test_xxx.rb` or `xxx_test.rb`
|
|
348
352
|
|
349
353
|
### Tag and Filtering
|
350
354
|
|
351
|
-
`topic()
|
355
|
+
`scope()`, `topic()`, and `spec()` accepts tag name, for example 'obsolete'
|
356
|
+
or 'experimental'.
|
352
357
|
|
353
358
|
test/example04_test.rb:
|
354
359
|
|
@@ -388,16 +393,16 @@ Oktest.scope do
|
|
388
393
|
end
|
389
394
|
```
|
390
395
|
|
391
|
-
It is possible to filter topics and specs by tag name
|
396
|
+
It is possible to filter topics and specs by tag name or pattern.
|
397
|
+
Pattern (!= regular expression) supports `*`, `?`, `[]` and `{}`.
|
392
398
|
|
393
399
|
```terminal
|
394
|
-
$ oktest -F tag=exp
|
395
|
-
$ oktest -F tag='*exp*'
|
396
|
-
$ oktest -F tag='{exp,old}'
|
400
|
+
$ oktest -F tag=exp test/ # filter by tag name
|
401
|
+
$ oktest -F tag='*exp*' test/ # filter by tag name pattern
|
402
|
+
$ oktest -F tag='{exp,old}' test/ # filter by multiple tag names
|
397
403
|
```
|
398
404
|
|
399
405
|
It is also possible to filter topics or specs by name.
|
400
|
-
Pattern (!= regular expression) supports `*`, `?`, `[]`, and `{}`.
|
401
406
|
|
402
407
|
```terminal
|
403
408
|
$ oktest -F topic='*Integer*' test/ # filter topics by pattern
|
@@ -407,8 +412,8 @@ $ oktest -F spec='*#[1-3]' test/ # filter specs by pattern
|
|
407
412
|
If you need negative filter, use `!=` instead of `=`.
|
408
413
|
|
409
414
|
```terminal
|
410
|
-
$ oktest -F spec!='*#5'
|
411
|
-
$ oktest -F tag!='{exp,old}'
|
415
|
+
$ oktest -F spec!='*#5' test/ # exclude spec 'example #5'
|
416
|
+
$ oktest -F tag!='{exp,old}' test/ # exclude tag='exp' or tag='old'
|
412
417
|
```
|
413
418
|
|
414
419
|
|
@@ -466,7 +471,7 @@ $ ruby test/example05_test.rb
|
|
466
471
|
|
467
472
|
### Optional: Unary Operators
|
468
473
|
|
469
|
-
`topic()` accepts unary `+`
|
474
|
+
`topic()` accepts unary plus (`+`) and `spec()` accepts unary minus (`-`).
|
470
475
|
This makes test scripts more readable.
|
471
476
|
|
472
477
|
<!--
|
@@ -500,7 +505,7 @@ end
|
|
500
505
|
|
501
506
|
### Generate Test Code Skeleton
|
502
507
|
|
503
|
-
`oktest
|
508
|
+
`oktest --generate` (or `oktest -G`) generates test code skeleton from ruby file.
|
504
509
|
Comment line starting with `#;` is regarded as spec description.
|
505
510
|
|
506
511
|
hello.rb:
|
@@ -523,7 +528,7 @@ end
|
|
523
528
|
Generate test code skeleton:
|
524
529
|
|
525
530
|
```terminal
|
526
|
-
$ oktest
|
531
|
+
$ oktest --generate hello.rb > test/hello_test.rb
|
527
532
|
```
|
528
533
|
|
529
534
|
test/hello_test.rb:
|
@@ -608,7 +613,7 @@ Oktest.scope do
|
|
608
613
|
end
|
609
614
|
|
610
615
|
spec "example" do
|
611
|
-
s = hello() # call
|
616
|
+
s = hello() # call it in spec block
|
612
617
|
ok {s} == "Hello!"
|
613
618
|
end
|
614
619
|
|
@@ -701,7 +706,7 @@ ok {a}.item(key, e) # alias of `ok {a}.keyval(key, e)`
|
|
701
706
|
ok {a}.length(e) # fail unless a.length == e
|
702
707
|
```
|
703
708
|
|
704
|
-
It is possible to
|
709
|
+
It is possible to chain method call of `.attr()` and `.keyval()`.
|
705
710
|
|
706
711
|
<!--
|
707
712
|
test/example11b_test.rb:
|
@@ -873,7 +878,7 @@ end
|
|
873
878
|
```
|
874
879
|
|
875
880
|
To catch subclass of error class, invoke `.raise!` instead of `.raise?`.
|
876
|
-
For example: `ok {pr}.raise!(NameError, /foobar
|
881
|
+
For example: `ok {pr}.raise!(NameError, /foobar/)`.
|
877
882
|
|
878
883
|
<!--
|
879
884
|
test/example14f_test.rb:
|
@@ -1075,7 +1080,7 @@ Oktest.scope do
|
|
1075
1080
|
end
|
1076
1081
|
```
|
1077
1082
|
|
1078
|
-
* `at_end()` can be called multiple times.
|
1083
|
+
* `at_end()` can be called multiple times in a spec.
|
1079
1084
|
* Registered blocks are invoked in reverse order at end of test case.
|
1080
1085
|
* Registered blocks of `at_end()` are invoked prior to block of `after()`.
|
1081
1086
|
* If something error raised in `at_end()`, test script execution will be
|
@@ -1085,7 +1090,7 @@ end
|
|
1085
1090
|
### Named Fixtures
|
1086
1091
|
|
1087
1092
|
`fixture() { ... }` in topic or scope block defines fixture builder,
|
1088
|
-
and `fixture()` in
|
1093
|
+
and `fixture()` in spec block returns fixture data.
|
1089
1094
|
|
1090
1095
|
test/example23_test.rb:
|
1091
1096
|
|
@@ -1144,7 +1149,7 @@ Oktest.scope do
|
|
1144
1149
|
end
|
1145
1150
|
```
|
1146
1151
|
|
1147
|
-
*
|
1152
|
+
* Fixture builders can be defined in `topic()` block as well as `Oktest.scope()` block.
|
1148
1153
|
* If fixture requires clean-up operation, call `at_end()` in `fixture()` block.
|
1149
1154
|
|
1150
1155
|
```ruby
|
@@ -1267,7 +1272,7 @@ Oktest.scope do
|
|
1267
1272
|
end
|
1268
1273
|
```
|
1269
1274
|
|
1270
|
-
*
|
1275
|
+
* The first argument of `capture_sio()` represents data from `$stdin`.
|
1271
1276
|
If it is not necessary, you can omit it like `caputre_sio() do ... end`.
|
1272
1277
|
* If you need `$stdin.tty? == true` and `$stdout.tty? == true`,
|
1273
1278
|
call `capture_sio(tty: true) do ... end`.
|
@@ -1275,7 +1280,7 @@ end
|
|
1275
1280
|
|
1276
1281
|
### `dummy_file()`
|
1277
1282
|
|
1278
|
-
`dummy_file()` creates dummy file temporarily.
|
1283
|
+
`dummy_file()` creates a dummy file temporarily.
|
1279
1284
|
|
1280
1285
|
test/example32_test.rb:
|
1281
1286
|
|
@@ -1310,12 +1315,12 @@ Oktest.scope do
|
|
1310
1315
|
end
|
1311
1316
|
```
|
1312
1317
|
|
1313
|
-
* If first argument of `dummy_file()` is nil, then it generates temporary file name automatically.
|
1318
|
+
* If the first argument of `dummy_file()` is nil, then it generates temporary file name automatically.
|
1314
1319
|
|
1315
1320
|
|
1316
1321
|
### `dummy_dir()`
|
1317
1322
|
|
1318
|
-
`dummy_dir()` creates dummy directory temporarily.
|
1323
|
+
`dummy_dir()` creates a dummy directory temporarily.
|
1319
1324
|
|
1320
1325
|
test/example33_test.rb:
|
1321
1326
|
|
@@ -1352,7 +1357,7 @@ Oktest.scope do
|
|
1352
1357
|
end
|
1353
1358
|
```
|
1354
1359
|
|
1355
|
-
* If first argument of `dummy_dir()` is nil, then it generates temorary directory name automatically.
|
1360
|
+
* If the first argument of `dummy_dir()` is nil, then it generates temorary directory name automatically.
|
1356
1361
|
|
1357
1362
|
|
1358
1363
|
### `dummy_values()`
|
@@ -1519,7 +1524,7 @@ end
|
|
1519
1524
|
|
1520
1525
|
### `recorder()`
|
1521
1526
|
|
1522
|
-
`recorder()` returns Benry::Recorder object.
|
1527
|
+
`recorder()` returns `Benry::Recorder` object.
|
1523
1528
|
See [Benry::Recorder README](https://github.com/kwatch/benry-ruby/blob/ruby/benry-recorder/README.md)
|
1524
1529
|
for detals.
|
1525
1530
|
|
@@ -1648,7 +1653,7 @@ Oktest.scope do
|
|
1648
1653
|
end
|
1649
1654
|
```
|
1650
1655
|
|
1651
|
-
Defining helper
|
1656
|
+
Defining helper methods per topic may help you.
|
1652
1657
|
|
1653
1658
|
```ruby
|
1654
1659
|
$http = http # !!!!
|
@@ -1826,10 +1831,8 @@ ruby run_all.rb | tail -5
|
|
1826
1831
|
|
1827
1832
|
### `--faster` Option
|
1828
1833
|
|
1829
|
-
|
1830
|
-
|
1831
|
-
very larget project and you want to run test scripts as fast as possible,
|
1832
|
-
try `--faster` option of `oktest` command.
|
1834
|
+
If you are working in very larget project and you want to run test scripts
|
1835
|
+
as fast as possible, try `--faster` option of `oktest` command.
|
1833
1836
|
|
1834
1837
|
```terminal
|
1835
1838
|
$ oktest -s quiet --faster test/ ## only for very large project
|
data/Rakefile.rb
CHANGED
data/lib/oktest.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
|
3
3
|
###
|
4
|
-
### $Release: 1.0.
|
4
|
+
### $Release: 1.0.1 $
|
5
5
|
### $Copyright: copyright(c) 2011-2021 kuwata-lab.com all rights reserved $
|
6
6
|
### $License: MIT License $
|
7
7
|
###
|
@@ -10,7 +10,7 @@
|
|
10
10
|
module Oktest
|
11
11
|
|
12
12
|
|
13
|
-
VERSION = '$Release: 1.0.
|
13
|
+
VERSION = '$Release: 1.0.1 $'.split()[1]
|
14
14
|
|
15
15
|
|
16
16
|
class OktestError < StandardError
|
@@ -891,11 +891,20 @@ module Oktest
|
|
891
891
|
end
|
892
892
|
|
893
893
|
def self.scope(tag: nil, &block)
|
894
|
-
#; [!
|
895
|
-
#; [!rsimc] adds scope object as child of THE_GLOBAL_SCOPE.
|
894
|
+
#; [!kem4y] detects test script filename.
|
896
895
|
location = caller(1).first # caller() makes performance slower, but necessary.
|
897
896
|
filename = location =~ /:\d+/ ? $` : nil
|
898
|
-
filename
|
897
|
+
#; [!6ullm] changes test script filename from absolute path to relative path.
|
898
|
+
if filename
|
899
|
+
pwd = Dir.pwd()
|
900
|
+
if filename.start_with?(pwd)
|
901
|
+
filename = filename[pwd.length..-1].sub(/\A\//, '')
|
902
|
+
elsif filename.start_with?('./')
|
903
|
+
filename = filename[2..-1]
|
904
|
+
end
|
905
|
+
end
|
906
|
+
#; [!vxoy1] creates new scope object.
|
907
|
+
#; [!rsimc] adds scope object as child of THE_GLOBAL_SCOPE.
|
899
908
|
scope = ScopeNode.new(THE_GLOBAL_SCOPE, filename, tag: tag)
|
900
909
|
#; [!jmc4q] raises error when nested called.
|
901
910
|
self.__scope(scope, &block)
|
data/oktest.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
|
3
3
|
###
|
4
|
-
### $Release: 1.0.
|
4
|
+
### $Release: 1.0.1 $
|
5
5
|
### $License: MIT License $
|
6
6
|
### $Copyright: copyright(c) 2011-2021 kuwata-lab.com all rights reserved $
|
7
7
|
###
|
@@ -13,7 +13,7 @@ Gem::Specification.new do |s|
|
|
13
13
|
s.name = "oktest"
|
14
14
|
s.author = "kwatch"
|
15
15
|
s.email = "kwatch@gmail.com"
|
16
|
-
s.version = "$Release: 1.0.
|
16
|
+
s.version = "$Release: 1.0.1 $".split()[1]
|
17
17
|
s.license = "MIT"
|
18
18
|
s.platform = Gem::Platform::RUBY
|
19
19
|
s.homepage = "https://github.com/kwatch/oktest/tree/ruby"
|
data/test/assertion_test.rb
CHANGED
data/test/filter_test.rb
CHANGED
data/test/fixture_test.rb
CHANGED
data/test/generator_test.rb
CHANGED
data/test/helper_test.rb
CHANGED
data/test/initialize.rb
CHANGED
data/test/mainapp_test.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
###
|
2
|
-
### $Release: 1.0.
|
2
|
+
### $Release: 1.0.1 $
|
3
3
|
### $Copyright: copyright(c) 2011-2021 kuwata-lab.com all rights reserved $
|
4
4
|
### $License: MIT License $
|
5
5
|
###
|
@@ -241,7 +241,7 @@ END
|
|
241
241
|
end
|
242
242
|
|
243
243
|
it "[!qqizl] '--version' option prints version number." do
|
244
|
-
expected = '$Release: 1.0.
|
244
|
+
expected = '$Release: 1.0.1 $'.split()[1] + "\n"
|
245
245
|
#
|
246
246
|
ret, sout, serr = run("--version")
|
247
247
|
assert_eq ret, 0
|
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.0.
|
4
|
+
### $Release: 1.0.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
data/test/runner_test.rb
CHANGED
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.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kwatch
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-09-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: diff-lcs
|
@@ -82,7 +82,7 @@ homepage: https://github.com/kwatch/oktest/tree/ruby
|
|
82
82
|
licenses:
|
83
83
|
- MIT
|
84
84
|
metadata: {}
|
85
|
-
post_install_message:
|
85
|
+
post_install_message:
|
86
86
|
rdoc_options: []
|
87
87
|
require_paths:
|
88
88
|
- lib
|
@@ -97,8 +97,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
97
97
|
- !ruby/object:Gem::Version
|
98
98
|
version: '0'
|
99
99
|
requirements: []
|
100
|
-
|
101
|
-
|
100
|
+
rubyforge_project:
|
101
|
+
rubygems_version: 2.5.2.3
|
102
|
+
signing_key:
|
102
103
|
specification_version: 4
|
103
104
|
summary: new style testing library
|
104
105
|
test_files:
|