minitest-around 0.1.0.pre2 → 0.2.0.pre
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/.gitignore +1 -0
- data/.travis.yml +7 -2
- data/Gemfile +2 -5
- data/README.rdoc +25 -29
- data/Rakefile +9 -0
- data/examples/chdir_spec.rb +18 -0
- data/lib/minitest/around/spec.rb +21 -8
- data/lib/minitest/around/unit.rb +7 -5
- data/lib/minitest/around/version.rb +2 -2
- data/minitest-around.gemspec +7 -16
- data/test/around_spec.rb +39 -14
- data/test/around_test.rb +0 -21
- data/test/nested_spec.rb +36 -0
- data/test/nested_test.rb +36 -0
- metadata +22 -9
- data/.rvmrc +0 -1
- data/examples/mutex_spec.rb +0 -24
- data/examples/mutex_test.rb +0 -23
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b8b6c586cacf0c22de37cbfcad9787667212d43d
|
4
|
+
data.tar.gz: 9f45e41f76cd08e01ce39c69167aa20c174d0d9a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a0875c6e0dbfa057708be548c4694bcd9a8598d97dd5ff9c31a15dd4297e431f4f5c24bac7dab9b412447169f7505d1e76eee0dd7d748ba26d885a6d6589dca8
|
7
|
+
data.tar.gz: 9ab900ca329d49d4ee3d124767b94edc0f52984c775e91a58e0de3efae6f3839fe2099bbdcb03c09db0c0ade9dac8d56d9c6b5ad64b4235c6c6c6badb31f034a
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/README.rdoc
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
{<img src="https://secure.travis-ci.org/splattael/minitest-around.png?branch=master" alt="Build Status" />}[http://travis-ci.org/splattael/minitest-around] {<img src="https://badge.fury.io/rb/minitest-around.png" alt="Gem Version" />}[http://badge.fury.io/rb/minitest-around] {<img src="https://codeclimate.com/github/splattael/minitest-around.png" />}[https://codeclimate.com/github/splattael/minitest-around]
|
4
4
|
|
5
|
-
Around block for minitest 5.
|
5
|
+
Around block for minitest 5.X.
|
6
6
|
|
7
7
|
Alternative for setup/teardown dance.
|
8
8
|
|
@@ -16,6 +16,8 @@ RDoc[http://rubydoc.info/github/splattael/minitest-around/master/file/README.rdo
|
|
16
16
|
|
17
17
|
== Usage
|
18
18
|
|
19
|
+
See examples[https://github.com/splattael/minitest-around/tree/master/examples] directory for some example usage..
|
20
|
+
|
19
21
|
=== Unit tests
|
20
22
|
|
21
23
|
require 'minitest/autorun'
|
@@ -32,40 +34,24 @@ RDoc[http://rubydoc.info/github/splattael/minitest-around/master/file/README.rdo
|
|
32
34
|
end
|
33
35
|
end
|
34
36
|
|
35
|
-
class PassArgsTest < Minitest::Test
|
36
|
-
def around
|
37
|
-
yield 1, 2
|
38
|
-
end
|
39
|
-
|
40
|
-
def test_passes_args(a, b)
|
41
|
-
assert_equal 3, a + b
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
37
|
=== Spec
|
46
38
|
|
47
39
|
require 'minitest/autorun'
|
48
40
|
require 'minitest/around/spec'
|
49
|
-
require '
|
41
|
+
require 'tmpdir'
|
50
42
|
|
51
|
-
describe "
|
43
|
+
describe "inside new directory" do
|
52
44
|
around do |test|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
end
|
59
|
-
|
60
|
-
describe "pass args" do
|
61
|
-
around do
|
62
|
-
# No block arg "test",
|
63
|
-
[ 1, 2 ]
|
45
|
+
Dir.mktmpdir do |dir|
|
46
|
+
$dir = dir
|
47
|
+
Dir.chdir(dir) do
|
48
|
+
test.call
|
49
|
+
end
|
64
50
|
end
|
51
|
+
end
|
65
52
|
|
66
|
-
|
67
|
-
|
68
|
-
end
|
53
|
+
it "is in new directory" do
|
54
|
+
assert_equal $dir, Dir.pwd
|
69
55
|
end
|
70
56
|
end
|
71
57
|
|
@@ -77,14 +63,24 @@ Test bodies won't be run if you don't *yield* inside +around+.
|
|
77
63
|
|
78
64
|
+minitest-around+ currently supports only +minitest+ 5.X.
|
79
65
|
|
80
|
-
|
66
|
+
Please see the mt4[https://github.com/splattael/minitest-around/tree/mt4] branch
|
67
|
+
for +minitest+ 4.7.X support.
|
81
68
|
|
82
|
-
Around block don't nest correctly. Please see GH issue[https://github.com/splattael/minitest-around/issues/2] for more info and workaround[https://github.com/splattael/minitest-around/issues/2#issuecomment-15769151].
|
83
69
|
|
84
70
|
== License
|
85
71
|
|
86
72
|
MIT License[http://www.opensource.org/licenses/mit-license.php]
|
87
73
|
|
74
|
+
== Authors
|
75
|
+
|
76
|
+
* Peter Suschlik (https://github.com/splattael)
|
77
|
+
|
78
|
+
== Contributors[https://github.com/splattael/minitest-around/graphs/contributors]
|
79
|
+
|
80
|
+
* Michael Grosser (https://github.com/grosser)
|
81
|
+
* Rick Martínez (https://github.com/rickmzp)
|
82
|
+
* Philip Nelson (https://github.com/pnelson)
|
83
|
+
|
88
84
|
== Contributing
|
89
85
|
|
90
86
|
1. Fork it
|
data/Rakefile
CHANGED
@@ -28,3 +28,12 @@ RDoc::Task.new(:rdoc) do |rdoc|
|
|
28
28
|
rdoc.main = 'README.rdoc'
|
29
29
|
rdoc.rdoc_files.include('README.rdoc', 'LICENSE', 'lib/**/*.rb')
|
30
30
|
end
|
31
|
+
|
32
|
+
# Examples
|
33
|
+
EXAMPLES = FileList["examples/*.rb"]
|
34
|
+
desc "Run all examples"
|
35
|
+
task :"test:examples" do
|
36
|
+
EXAMPLES.each do |example|
|
37
|
+
sh "bundle", "exec", "ruby", example
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
require 'minitest/around/spec'
|
3
|
+
require 'tmpdir'
|
4
|
+
|
5
|
+
describe "inside new directory" do
|
6
|
+
around do |test|
|
7
|
+
Dir.mktmpdir do |dir|
|
8
|
+
$dir = dir
|
9
|
+
Dir.chdir(dir) do
|
10
|
+
test.call
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
it "is in new directory" do
|
16
|
+
assert_equal $dir, Dir.pwd
|
17
|
+
end
|
18
|
+
end
|
data/lib/minitest/around/spec.rb
CHANGED
@@ -1,16 +1,29 @@
|
|
1
|
-
require 'minitest
|
1
|
+
require 'minitest'
|
2
2
|
|
3
3
|
require 'minitest/around/version'
|
4
4
|
require 'minitest/around/unit'
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
6
|
+
class Minitest::Spec
|
7
|
+
module DSL
|
8
|
+
# - resume to call first part
|
9
|
+
# - execute test
|
10
|
+
# - resume fiber to execute last part
|
11
|
+
def around(&block)
|
12
|
+
fib = nil
|
13
|
+
before do
|
14
|
+
fib = Fiber.new { |context, resume| context.instance_exec(resume, &block) }
|
15
|
+
fib.resume(self, lambda { Fiber.yield })
|
13
16
|
end
|
17
|
+
after { fib.resume }
|
18
|
+
end
|
19
|
+
|
20
|
+
# Minitest does not support multiple before/after blocks
|
21
|
+
def before(type=nil, &block)
|
22
|
+
include Module.new { define_method(:setup) { super(); instance_exec(&block) } }
|
23
|
+
end
|
24
|
+
|
25
|
+
def after(type=nil, &block)
|
26
|
+
include Module.new { define_method(:after) { super(); instance_exec(&block) } }
|
14
27
|
end
|
15
28
|
end
|
16
29
|
end
|
data/lib/minitest/around/unit.rb
CHANGED
@@ -1,12 +1,14 @@
|
|
1
|
-
require 'minitest
|
1
|
+
require 'minitest'
|
2
2
|
require 'minitest/around/version'
|
3
3
|
|
4
4
|
class Minitest::Test
|
5
|
-
|
6
|
-
|
7
|
-
|
5
|
+
alias_method :run_without_around, :run
|
6
|
+
def run(*args)
|
7
|
+
if defined?(around)
|
8
|
+
around { run_without_around(*args) }
|
8
9
|
else
|
9
|
-
|
10
|
+
run_without_around(*args)
|
10
11
|
end
|
12
|
+
self
|
11
13
|
end
|
12
14
|
end
|
data/minitest-around.gemspec
CHANGED
@@ -1,25 +1,16 @@
|
|
1
|
-
|
2
|
-
$:.push File.expand_path("../lib", __FILE__)
|
3
|
-
require 'minitest/around/version'
|
1
|
+
require './lib/minitest/around/version'
|
4
2
|
|
5
|
-
Gem::Specification.new do |s|
|
6
|
-
s.name = "minitest-around"
|
7
|
-
s.version = MiniTest::Around::VERSION
|
3
|
+
Gem::Specification.new "minitest-around", Minitest::Around::VERSION do |s|
|
8
4
|
s.authors = ["Peter Suschlik"]
|
9
5
|
s.email = ["peter-minitest-around@suschlik.de"]
|
10
6
|
s.homepage = "https://github.com/splattael/minitest-around"
|
11
|
-
s.summary =
|
12
|
-
s.description =
|
7
|
+
s.summary = "Around block for minitest."
|
8
|
+
s.description = "Alternative for setup/teardown dance."
|
13
9
|
s.license = 'MIT'
|
10
|
+
s.files = `git ls-files`.split("\n")
|
14
11
|
|
15
|
-
s.
|
16
|
-
|
17
|
-
s.files = `git ls-files`.split("\n")
|
18
|
-
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
19
|
-
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
20
|
-
s.require_paths = ["lib"]
|
21
|
-
|
22
|
-
s.add_dependency 'minitest', '~> 5.0.8'
|
12
|
+
s.add_dependency 'minitest', '~> 5.0'
|
23
13
|
|
24
14
|
s.add_development_dependency 'rdoc'
|
15
|
+
s.add_development_dependency 'rake'
|
25
16
|
end
|
data/test/around_spec.rb
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
require 'minitest/autorun'
|
2
2
|
require 'minitest/around/spec'
|
3
3
|
|
4
|
-
describe "
|
4
|
+
describe "Minitest Around" do
|
5
5
|
describe "without around" do
|
6
6
|
it "works w/o defining parameters" do
|
7
7
|
assert true
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
11
|
-
describe "
|
11
|
+
describe "simple" do
|
12
12
|
around do |test|
|
13
13
|
$before = true
|
14
14
|
test.call
|
@@ -20,25 +20,50 @@ describe "MiniTest Around" do
|
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
|
-
describe "
|
24
|
-
|
23
|
+
describe "context" do
|
24
|
+
before { @x = 1 }
|
25
25
|
|
26
|
-
|
27
|
-
|
26
|
+
around do |test|
|
27
|
+
@x = 2
|
28
|
+
test.call
|
29
|
+
assert_equal 2, @x
|
28
30
|
end
|
29
31
|
|
30
|
-
|
31
|
-
|
32
|
-
|
32
|
+
it "stays in context" do
|
33
|
+
@x.must_equal 2
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
describe "nested fun" do
|
38
|
+
let(:list) { [] }
|
39
|
+
before { list << 1 }
|
40
|
+
before { list << 2 }
|
41
|
+
after { list << 6 }
|
42
|
+
around { |t| list << 3; t.call; list << 7 }
|
43
|
+
before { list << 4 }
|
44
|
+
around { |t| list << 5; t.call; list << 8 }
|
45
|
+
after { list << 9 }
|
46
|
+
after do
|
47
|
+
if @xxx == 1
|
48
|
+
list.must_equal [1, 2, 3, 4, 5, 6, 7, 8, 9]
|
49
|
+
elsif @xxx == 2
|
50
|
+
list.must_equal [1, 2, 3, 4, 5, 51, 6, 7, 8, 9]
|
51
|
+
else
|
52
|
+
raise
|
33
53
|
end
|
34
54
|
end
|
35
55
|
|
36
|
-
|
37
|
-
|
56
|
+
it "orders" do
|
57
|
+
@xxx = 1
|
58
|
+
list.must_equal [1, 2, 3, 4, 5]
|
59
|
+
end
|
60
|
+
|
61
|
+
describe "more nesting fun" do
|
62
|
+
before { list << 51 }
|
38
63
|
|
39
|
-
it "
|
40
|
-
|
41
|
-
|
64
|
+
it "orders" do
|
65
|
+
@xxx = 2
|
66
|
+
list.must_equal [1, 2, 3, 4, 5, 51]
|
42
67
|
end
|
43
68
|
end
|
44
69
|
end
|
data/test/around_test.rb
CHANGED
@@ -18,24 +18,3 @@ class TestWithoutArgs < Minitest::Test
|
|
18
18
|
assert_equal true, $before
|
19
19
|
end
|
20
20
|
end
|
21
|
-
|
22
|
-
class TestWithSingleArg < Minitest::Test
|
23
|
-
def around
|
24
|
-
yield "string"
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_around_passes_string(string)
|
28
|
-
assert_equal "string", string
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
class TestWithMultipleArgs < Minitest::Test
|
33
|
-
def around
|
34
|
-
yield 1, 2
|
35
|
-
end
|
36
|
-
|
37
|
-
def test_passes_multiple_args(a, b)
|
38
|
-
assert_equal 1, a
|
39
|
-
assert_equal 2, b
|
40
|
-
end
|
41
|
-
end
|
data/test/nested_spec.rb
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
require 'minitest/around'
|
3
|
+
|
4
|
+
$var = []
|
5
|
+
|
6
|
+
describe 'Outer' do
|
7
|
+
before do
|
8
|
+
$var << :before
|
9
|
+
end
|
10
|
+
after do
|
11
|
+
$var << :after
|
12
|
+
$var.must_equal [:before, :ibefore, :begin, :ibegin, :during, :iend, :end, :iafter, :after]
|
13
|
+
end
|
14
|
+
around do |test|
|
15
|
+
$var << :begin
|
16
|
+
test.call
|
17
|
+
$var << :end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe 'Inner' do
|
21
|
+
before do
|
22
|
+
$var << :ibefore
|
23
|
+
end
|
24
|
+
after do
|
25
|
+
$var << :iafter
|
26
|
+
end
|
27
|
+
around do |test|
|
28
|
+
$var << :ibegin
|
29
|
+
test.call
|
30
|
+
$var << :iend
|
31
|
+
end
|
32
|
+
it 'testing' do
|
33
|
+
$var << :during
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/test/nested_test.rb
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
require 'minitest/around/unit'
|
3
|
+
|
4
|
+
$var = []
|
5
|
+
|
6
|
+
class OuterNestedTest < Minitest::Test
|
7
|
+
def setup
|
8
|
+
$var << :before
|
9
|
+
end
|
10
|
+
def teardown
|
11
|
+
$var << :after
|
12
|
+
$var.must_equal [:before, :ibefore, :begin, :ibegin, :during, :iend, :end, :iafter, :after]
|
13
|
+
end
|
14
|
+
def around
|
15
|
+
$var << :begin
|
16
|
+
yield
|
17
|
+
$var << :end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
class InnerNestedTest < OuterNestedTest
|
22
|
+
def setup
|
23
|
+
$var << :ibefore
|
24
|
+
end
|
25
|
+
def teardown
|
26
|
+
$var << :iafter
|
27
|
+
end
|
28
|
+
def around
|
29
|
+
$var << :ibegin
|
30
|
+
yield
|
31
|
+
$var << :iend
|
32
|
+
end
|
33
|
+
def test_nesting
|
34
|
+
$var << :during
|
35
|
+
end
|
36
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: minitest-around
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0.pre
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Suschlik
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-01-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 5.0
|
19
|
+
version: '5.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 5.0
|
26
|
+
version: '5.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rdoc
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - '>='
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
41
55
|
description: Alternative for setup/teardown dance.
|
42
56
|
email:
|
43
57
|
- peter-minitest-around@suschlik.de
|
@@ -46,14 +60,12 @@ extensions: []
|
|
46
60
|
extra_rdoc_files: []
|
47
61
|
files:
|
48
62
|
- .gitignore
|
49
|
-
- .rvmrc
|
50
63
|
- .travis.yml
|
51
64
|
- Gemfile
|
52
65
|
- LICENSE
|
53
66
|
- README.rdoc
|
54
67
|
- Rakefile
|
55
|
-
- examples/
|
56
|
-
- examples/mutex_test.rb
|
68
|
+
- examples/chdir_spec.rb
|
57
69
|
- lib/minitest/around.rb
|
58
70
|
- lib/minitest/around/spec.rb
|
59
71
|
- lib/minitest/around/unit.rb
|
@@ -61,6 +73,8 @@ files:
|
|
61
73
|
- minitest-around.gemspec
|
62
74
|
- test/around_spec.rb
|
63
75
|
- test/around_test.rb
|
76
|
+
- test/nested_spec.rb
|
77
|
+
- test/nested_test.rb
|
64
78
|
homepage: https://github.com/splattael/minitest-around
|
65
79
|
licenses:
|
66
80
|
- MIT
|
@@ -80,10 +94,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
80
94
|
- !ruby/object:Gem::Version
|
81
95
|
version: 1.3.1
|
82
96
|
requirements: []
|
83
|
-
rubyforge_project:
|
97
|
+
rubyforge_project:
|
84
98
|
rubygems_version: 2.0.3
|
85
99
|
signing_key:
|
86
100
|
specification_version: 4
|
87
101
|
summary: Around block for minitest.
|
88
102
|
test_files: []
|
89
|
-
has_rdoc:
|
data/.rvmrc
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
rvm @minitest-around --create
|
data/examples/mutex_spec.rb
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
require 'minitest/autorun'
|
2
|
-
require 'minitest/around'
|
3
|
-
require 'thread'
|
4
|
-
|
5
|
-
describe "Mutex" do
|
6
|
-
around do |test|
|
7
|
-
Mutex.new.synchronize(&test)
|
8
|
-
end
|
9
|
-
|
10
|
-
it "synchronized" do
|
11
|
-
# ...
|
12
|
-
end
|
13
|
-
|
14
|
-
describe "pass args" do
|
15
|
-
around do
|
16
|
-
# No block arg "test",
|
17
|
-
[ 1, 2 ]
|
18
|
-
end
|
19
|
-
|
20
|
-
it "passes args" do |a, b|
|
21
|
-
(a + b).must_equal 3
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
data/examples/mutex_test.rb
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
require 'minitest/autorun'
|
2
|
-
require 'minitest/around'
|
3
|
-
require 'thread'
|
4
|
-
|
5
|
-
class MutexTest < Minitest::Test
|
6
|
-
def around(&block)
|
7
|
-
Mutex.new.synchronize(&block)
|
8
|
-
end
|
9
|
-
|
10
|
-
def test_synchronized
|
11
|
-
# ...
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
class PassArgsTest < Minitest::Test
|
16
|
-
def around
|
17
|
-
yield 1, 2
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_passes_args(a, b)
|
21
|
-
assert_equal 3, a + b
|
22
|
-
end
|
23
|
-
end
|