oktobertest 0.0.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 +7 -0
- data/.gitignore +17 -0
- data/Gemfile +2 -0
- data/LICENSE +22 -0
- data/README.md +129 -0
- data/Rakefile +10 -0
- data/bin/ok +14 -0
- data/lib/oktobertest.rb +144 -0
- data/oktobertest.gemspec +25 -0
- data/test/assertions_test.rb +43 -0
- data/test/fixtures/error_test.rb +3 -0
- data/test/fixtures/failing_test.rb +3 -0
- data/test/fixtures/run_scope_test.rb +19 -0
- data/test/fixtures/run_test_test.rb +9 -0
- data/test/fixtures/skipped_test.rb +3 -0
- data/test/fixtures/successful_test.rb +3 -0
- data/test/oktobertest_test.rb +55 -0
- data/test/scope_test.rb +37 -0
- data/test/setup_test.rb +56 -0
- data/test/teardown_test.rb +13 -0
- metadata +117 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 2766bd05820c2140c972c6cb72d2a9bf08f0034f
|
4
|
+
data.tar.gz: 536b310425a0d6b4b845c36ee2500a1720044313
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: dac4ac71b09de1b9c7a4b59416bb374ef6f0bc4951c13f3a93c63e58fc93e22ea32489c1805cf0d160b68960e0c2c54e5a44976f0e479b20d4fec17275ff8612
|
7
|
+
data.tar.gz: f565aab1347b5fa094d0a3e1efa251bae18e2a76f2f4aa633eb3cef45b86a5c6c5a7a208ba0b73edc9975bcf3b6ab76bdd980522d45225ab3414fd18f6a5b6fb
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2014 Patricio Mac Adden <patriciomacadden@gmail.com>
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,129 @@
|
|
1
|
+
# Oktobertest
|
2
|
+
|
3
|
+
Small test library.
|
4
|
+
|
5
|
+
## Why?
|
6
|
+
|
7
|
+
This is a project I started over the weekend. I was looking at [Cutest](https://github.com/djanowski/cutest)
|
8
|
+
and I thought: "It shouldn't be so difficult to make a test library".
|
9
|
+
|
10
|
+
### Features
|
11
|
+
|
12
|
+
* Setup - Test - Teardown model.
|
13
|
+
* Each `test` is an instance of `Oktobertest::Test`, which means that each test
|
14
|
+
runs its own context.
|
15
|
+
* Each `scope` is an instance of `Oktobertest::Scope`. Methods defined in a
|
16
|
+
scope are copied into each `test` it contains.
|
17
|
+
* Extensible: it's easy to add more assertions.
|
18
|
+
|
19
|
+
## Installation
|
20
|
+
|
21
|
+
Add this line to your application's Gemfile:
|
22
|
+
|
23
|
+
```ruby
|
24
|
+
gem 'oktobertest', group: :test
|
25
|
+
# or this if you want to use oktobertest master
|
26
|
+
# gem 'oktobertest', group: :test, github: 'patriciomacadden/oktobertest'
|
27
|
+
```
|
28
|
+
|
29
|
+
And then execute:
|
30
|
+
|
31
|
+
```bash
|
32
|
+
$ bundle
|
33
|
+
```
|
34
|
+
|
35
|
+
Or install it yourself as:
|
36
|
+
|
37
|
+
```bash
|
38
|
+
$ gem install oktobertest
|
39
|
+
```
|
40
|
+
|
41
|
+
## Usage
|
42
|
+
|
43
|
+
### Example
|
44
|
+
|
45
|
+
```ruby
|
46
|
+
scope do
|
47
|
+
setup do
|
48
|
+
@foo = 'foo'
|
49
|
+
end
|
50
|
+
|
51
|
+
test 'this test will pass' do
|
52
|
+
assert @foo == 'foo'
|
53
|
+
end
|
54
|
+
|
55
|
+
test 'this test will pass too' do
|
56
|
+
assert_raises RuntimeError do
|
57
|
+
raise RuntimeError
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
test 'this test will fail' do
|
62
|
+
flunk 'fail!'
|
63
|
+
end
|
64
|
+
|
65
|
+
test 'skip this one!' do
|
66
|
+
skip
|
67
|
+
end
|
68
|
+
end
|
69
|
+
```
|
70
|
+
|
71
|
+
### Assertions
|
72
|
+
|
73
|
+
For now there are 2 assertions:
|
74
|
+
|
75
|
+
* `assert`: fails unless the given condition is true.
|
76
|
+
* `assert_raises`: fails unless the given block raises the given exception.
|
77
|
+
|
78
|
+
And there is a way of making tests fail (`flunk`) and skipping them (`skip`).
|
79
|
+
|
80
|
+
#### How to add assertions?
|
81
|
+
|
82
|
+
That's quite simple. Just define them in the `Oktobertest::Assertions` module:
|
83
|
+
|
84
|
+
```ruby
|
85
|
+
module Oktobertest
|
86
|
+
module Assertions
|
87
|
+
def assert_equal(expected, actual, message = nil)
|
88
|
+
message ||= "#{expected.inspect} is not equal to #{actual.inspect}"
|
89
|
+
assert expected == actual, message
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
```
|
94
|
+
|
95
|
+
### Running the test suite
|
96
|
+
|
97
|
+
You can run the test suite using `rake` or the `ok` command.
|
98
|
+
|
99
|
+
Using `rake`:
|
100
|
+
|
101
|
+
```ruby
|
102
|
+
require 'oktobertest'
|
103
|
+
|
104
|
+
task :test do
|
105
|
+
Oktobertest.run Dir['test/*_test.rb']
|
106
|
+
end
|
107
|
+
|
108
|
+
task default: :test
|
109
|
+
```
|
110
|
+
|
111
|
+
Using `ok`:
|
112
|
+
|
113
|
+
```bash
|
114
|
+
$ ok test/*_test.rb
|
115
|
+
```
|
116
|
+
|
117
|
+
Please check the default options by running `ok`.
|
118
|
+
|
119
|
+
## Contributing
|
120
|
+
|
121
|
+
1. Fork it
|
122
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
123
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
124
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
125
|
+
5. Create new Pull Request
|
126
|
+
|
127
|
+
## License
|
128
|
+
|
129
|
+
See the [LICENSE](https://github.com/patriciomacadden/oktobertest/blob/master/LICENSE).
|
data/Rakefile
ADDED
data/bin/ok
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
puts 'usage: ok [-r lib] [-s scope] [-t test] [-v] file ...' if ARGV.empty?
|
4
|
+
|
5
|
+
require 'clap'
|
6
|
+
require_relative '../lib/oktobertest'
|
7
|
+
|
8
|
+
files = Clap.run ARGV,
|
9
|
+
'-r' => ->(file) { require file },
|
10
|
+
'-s' => ->(name) { Oktobertest.run_scope = name },
|
11
|
+
'-t' => ->(name) { Oktobertest.run_test = name },
|
12
|
+
'-v' => -> { puts Oktobertest::VERSION }
|
13
|
+
|
14
|
+
Oktobertest.run files if files.any?
|
data/lib/oktobertest.rb
ADDED
@@ -0,0 +1,144 @@
|
|
1
|
+
module Oktobertest
|
2
|
+
VERSION = '0.0.1'
|
3
|
+
|
4
|
+
TestFailed = Class.new StandardError
|
5
|
+
TestSkipped = Class.new StandardError
|
6
|
+
|
7
|
+
def self.run(files)
|
8
|
+
files.each { |file| load file }
|
9
|
+
puts
|
10
|
+
errors.each do |error|
|
11
|
+
case error
|
12
|
+
when TestFailed
|
13
|
+
file, line, _ = error.backtrace[2].split(':')
|
14
|
+
print "\nerror: #{error.message}"
|
15
|
+
when TestSkipped
|
16
|
+
file, line, _ = error.backtrace[1].split(':')
|
17
|
+
print "\nskip"
|
18
|
+
print ": #{error.message}" unless error.message == error.class.name
|
19
|
+
else
|
20
|
+
file, line, _ = error.backtrace[0].split(':')
|
21
|
+
print "\nerror: #{error.message}"
|
22
|
+
end
|
23
|
+
print "\nfile: #{file}\nline: #{line}\n"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.run_test=(name)
|
28
|
+
@run_test = name
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.run_test
|
32
|
+
@run_test
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.run_scope=(name)
|
36
|
+
@run_scope = name
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.run_scope
|
40
|
+
@run_scope
|
41
|
+
end
|
42
|
+
|
43
|
+
module Assertions
|
44
|
+
def assert(value, message = nil)
|
45
|
+
message ||= "condition is not true: #{value.inspect}"
|
46
|
+
flunk message unless !!value
|
47
|
+
end
|
48
|
+
|
49
|
+
def assert_raises(exception, message = nil)
|
50
|
+
begin
|
51
|
+
yield
|
52
|
+
rescue => error
|
53
|
+
ensure
|
54
|
+
message ||= "block doesn't raise #{exception}"
|
55
|
+
flunk message unless error.kind_of? exception
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
def flunk(message = nil)
|
60
|
+
raise TestFailed, message
|
61
|
+
end
|
62
|
+
|
63
|
+
def skip(message = nil)
|
64
|
+
raise TestSkipped, message
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
class Scope
|
69
|
+
def initialize(name = nil, &block)
|
70
|
+
@name, @block = name, block
|
71
|
+
@setup, @teardown = [], []
|
72
|
+
end
|
73
|
+
|
74
|
+
def run
|
75
|
+
instance_eval &@block
|
76
|
+
end
|
77
|
+
|
78
|
+
protected
|
79
|
+
|
80
|
+
def test(name = nil, &block)
|
81
|
+
if !Oktobertest.run_test || Oktobertest.run_test == name
|
82
|
+
test = Test.new(name, &block)
|
83
|
+
singleton_methods.each { |m| test.define_singleton_method m, &method(m) }
|
84
|
+
@setup.each { |b| test.instance_eval &b }
|
85
|
+
test.run
|
86
|
+
@teardown.each { |b| test.instance_eval &b }
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
def setup(&block)
|
91
|
+
@setup << block
|
92
|
+
end
|
93
|
+
|
94
|
+
def teardown(&block)
|
95
|
+
@teardown << block
|
96
|
+
end
|
97
|
+
|
98
|
+
def scope(name = nil, &block)
|
99
|
+
if !Oktobertest.run_scope || Oktobertest.run_scope == name
|
100
|
+
scope = Scope.new(name, &block)
|
101
|
+
singleton_methods.each { |m| scope.define_singleton_method m, &method(m) }
|
102
|
+
@setup.each { |b| scope.setup &b }
|
103
|
+
@teardown.each { |b| scope.teardown &b }
|
104
|
+
scope.run
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
class Test
|
110
|
+
include Assertions
|
111
|
+
|
112
|
+
def initialize(name = nil, &block)
|
113
|
+
@name, @block = name, block
|
114
|
+
end
|
115
|
+
|
116
|
+
def run
|
117
|
+
instance_eval &@block
|
118
|
+
print '.'
|
119
|
+
rescue TestFailed => error
|
120
|
+
Oktobertest.errors << error
|
121
|
+
print 'F'
|
122
|
+
rescue TestSkipped => error
|
123
|
+
Oktobertest.errors << error
|
124
|
+
print 'S'
|
125
|
+
rescue StandardError => error
|
126
|
+
Oktobertest.errors << error
|
127
|
+
print 'E'
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
private
|
132
|
+
|
133
|
+
def self.errors
|
134
|
+
@errors ||= []
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
138
|
+
module Kernel
|
139
|
+
def scope(name = nil, &block)
|
140
|
+
if !Oktobertest.run_scope || Oktobertest.run_scope == name
|
141
|
+
Oktobertest::Scope.new(name, &block).run
|
142
|
+
end
|
143
|
+
end
|
144
|
+
end
|
data/oktobertest.gemspec
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'oktobertest'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = 'oktobertest'
|
8
|
+
spec.version = Oktobertest::VERSION
|
9
|
+
spec.authors = ['Patricio Mac Adden']
|
10
|
+
spec.email = ['patriciomacadden@gmail.com']
|
11
|
+
spec.summary = %q{Small test library}
|
12
|
+
spec.description = %q{Small test library}
|
13
|
+
spec.homepage = 'https://github.com/patriciomacadden/oktobertest'
|
14
|
+
spec.license = 'MIT'
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0")
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ['lib']
|
20
|
+
|
21
|
+
spec.add_development_dependency 'bundler', '~> 1.5'
|
22
|
+
spec.add_development_dependency 'rake'
|
23
|
+
|
24
|
+
spec.add_runtime_dependency 'clap', '~> 1.0.0'
|
25
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
scope 'assert' do
|
2
|
+
test 'passes if the value is true' do
|
3
|
+
assert true
|
4
|
+
end
|
5
|
+
|
6
|
+
test 'fails if the value is false' do
|
7
|
+
assert_raises Oktobertest::TestFailed do
|
8
|
+
assert false
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
scope 'assert_raises' do
|
14
|
+
test 'passes if the block raises the given exception' do
|
15
|
+
assert_raises RuntimeError do
|
16
|
+
raise RuntimeError
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
test 'fails if the block does not raise the given exception' do
|
21
|
+
assert_raises Oktobertest::TestFailed do
|
22
|
+
assert_raises RuntimeError do
|
23
|
+
raise ArgumentError
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
scope 'flunk' do
|
30
|
+
test 'raises Oktobertest::TestFailed exception' do
|
31
|
+
assert_raises Oktobertest::TestFailed do
|
32
|
+
flunk
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
scope 'skip' do
|
38
|
+
test 'raises Oktobertest::TestSkipped exception' do
|
39
|
+
assert_raises Oktobertest::TestSkipped do
|
40
|
+
skip
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
scope do
|
2
|
+
test 'successful run' do
|
3
|
+
expected = ".\n"
|
4
|
+
output = %x(bin/ok test/fixtures/successful_test.rb)
|
5
|
+
assert expected == output
|
6
|
+
end
|
7
|
+
|
8
|
+
test 'errored run' do
|
9
|
+
expected = <<EOS
|
10
|
+
E
|
11
|
+
|
12
|
+
error: RuntimeError
|
13
|
+
file: test/fixtures/error_test.rb
|
14
|
+
line: 2
|
15
|
+
EOS
|
16
|
+
output = %x(bin/ok test/fixtures/error_test.rb)
|
17
|
+
assert expected == output
|
18
|
+
end
|
19
|
+
|
20
|
+
test 'failed run' do
|
21
|
+
expected = <<EOS
|
22
|
+
F
|
23
|
+
|
24
|
+
error: condition is not true: false
|
25
|
+
file: test/fixtures/failing_test.rb
|
26
|
+
line: 2
|
27
|
+
EOS
|
28
|
+
output = %x(bin/ok test/fixtures/failing_test.rb)
|
29
|
+
assert expected == output
|
30
|
+
end
|
31
|
+
|
32
|
+
test 'run with skipped tests' do
|
33
|
+
expected = <<EOS
|
34
|
+
S
|
35
|
+
|
36
|
+
skip
|
37
|
+
file: test/fixtures/skipped_test.rb
|
38
|
+
line: 2
|
39
|
+
EOS
|
40
|
+
output = %x(bin/ok test/fixtures/skipped_test.rb)
|
41
|
+
assert expected == output
|
42
|
+
end
|
43
|
+
|
44
|
+
test 'run only one scope' do
|
45
|
+
expected = "..\n"
|
46
|
+
output = %x(bin/ok -s 'run this' test/fixtures/run_scope_test.rb)
|
47
|
+
assert expected == output
|
48
|
+
end
|
49
|
+
|
50
|
+
test 'run only one test' do
|
51
|
+
expected = ".\n"
|
52
|
+
output = %x(bin/ok -t 'run this' test/fixtures/run_test_test.rb)
|
53
|
+
assert expected == output
|
54
|
+
end
|
55
|
+
end
|
data/test/scope_test.rb
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
scope do
|
2
|
+
def foo
|
3
|
+
'foo'
|
4
|
+
end
|
5
|
+
|
6
|
+
test 'responds to foo' do
|
7
|
+
assert foo == 'foo'
|
8
|
+
end
|
9
|
+
|
10
|
+
scope do
|
11
|
+
test 'responds to foo too' do
|
12
|
+
assert foo == 'foo'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
scope do
|
18
|
+
setup do
|
19
|
+
@foo = 'foo'
|
20
|
+
end
|
21
|
+
|
22
|
+
scope do
|
23
|
+
setup do
|
24
|
+
@bar = 'bar'
|
25
|
+
end
|
26
|
+
|
27
|
+
test 'foo and bar must be defined' do
|
28
|
+
assert @foo == 'foo'
|
29
|
+
assert @bar == 'bar'
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
test 'foo must be defined and bar wont be' do
|
34
|
+
assert @foo == 'foo'
|
35
|
+
assert @bar.nil?
|
36
|
+
end
|
37
|
+
end
|
data/test/setup_test.rb
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
scope do
|
2
|
+
setup do
|
3
|
+
@foo = 'foo'
|
4
|
+
end
|
5
|
+
|
6
|
+
test 'foo is defined' do
|
7
|
+
assert @foo == 'foo'
|
8
|
+
end
|
9
|
+
|
10
|
+
scope do
|
11
|
+
test 'foo is defined too' do
|
12
|
+
assert @foo == 'foo'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
scope do
|
18
|
+
setup do
|
19
|
+
@foo = 'foo'
|
20
|
+
end
|
21
|
+
|
22
|
+
test 'foo is defined' do
|
23
|
+
assert @foo == 'foo'
|
24
|
+
@foo = 'bar'
|
25
|
+
end
|
26
|
+
|
27
|
+
test 'foo is not changed' do
|
28
|
+
assert @foo == 'foo'
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
scope do
|
33
|
+
setup do
|
34
|
+
@foo = 'foo'
|
35
|
+
end
|
36
|
+
|
37
|
+
setup do
|
38
|
+
@bar = 'bar'
|
39
|
+
end
|
40
|
+
|
41
|
+
test 'both foo and bar are defined, but baz is not' do
|
42
|
+
assert @foo == 'foo'
|
43
|
+
assert @bar == 'bar'
|
44
|
+
assert @baz.nil?
|
45
|
+
end
|
46
|
+
|
47
|
+
setup do
|
48
|
+
@baz = 'baz'
|
49
|
+
end
|
50
|
+
|
51
|
+
test 'both foo, bar and baz are defined' do
|
52
|
+
assert @foo == 'foo'
|
53
|
+
assert @bar == 'bar'
|
54
|
+
assert @baz == 'baz'
|
55
|
+
end
|
56
|
+
end
|
metadata
ADDED
@@ -0,0 +1,117 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: oktobertest
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Patricio Mac Adden
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-03-25 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.5'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.5'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: clap
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 1.0.0
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 1.0.0
|
55
|
+
description: Small test library
|
56
|
+
email:
|
57
|
+
- patriciomacadden@gmail.com
|
58
|
+
executables:
|
59
|
+
- ok
|
60
|
+
extensions: []
|
61
|
+
extra_rdoc_files: []
|
62
|
+
files:
|
63
|
+
- ".gitignore"
|
64
|
+
- Gemfile
|
65
|
+
- LICENSE
|
66
|
+
- README.md
|
67
|
+
- Rakefile
|
68
|
+
- bin/ok
|
69
|
+
- lib/oktobertest.rb
|
70
|
+
- oktobertest.gemspec
|
71
|
+
- test/assertions_test.rb
|
72
|
+
- test/fixtures/error_test.rb
|
73
|
+
- test/fixtures/failing_test.rb
|
74
|
+
- test/fixtures/run_scope_test.rb
|
75
|
+
- test/fixtures/run_test_test.rb
|
76
|
+
- test/fixtures/skipped_test.rb
|
77
|
+
- test/fixtures/successful_test.rb
|
78
|
+
- test/oktobertest_test.rb
|
79
|
+
- test/scope_test.rb
|
80
|
+
- test/setup_test.rb
|
81
|
+
- test/teardown_test.rb
|
82
|
+
homepage: https://github.com/patriciomacadden/oktobertest
|
83
|
+
licenses:
|
84
|
+
- MIT
|
85
|
+
metadata: {}
|
86
|
+
post_install_message:
|
87
|
+
rdoc_options: []
|
88
|
+
require_paths:
|
89
|
+
- lib
|
90
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
91
|
+
requirements:
|
92
|
+
- - ">="
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: '0'
|
95
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
96
|
+
requirements:
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: '0'
|
100
|
+
requirements: []
|
101
|
+
rubyforge_project:
|
102
|
+
rubygems_version: 2.2.2
|
103
|
+
signing_key:
|
104
|
+
specification_version: 4
|
105
|
+
summary: Small test library
|
106
|
+
test_files:
|
107
|
+
- test/assertions_test.rb
|
108
|
+
- test/fixtures/error_test.rb
|
109
|
+
- test/fixtures/failing_test.rb
|
110
|
+
- test/fixtures/run_scope_test.rb
|
111
|
+
- test/fixtures/run_test_test.rb
|
112
|
+
- test/fixtures/skipped_test.rb
|
113
|
+
- test/fixtures/successful_test.rb
|
114
|
+
- test/oktobertest_test.rb
|
115
|
+
- test/scope_test.rb
|
116
|
+
- test/setup_test.rb
|
117
|
+
- test/teardown_test.rb
|