minitest-suite 0.0.2 → 0.0.3
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/CHANGELOG.md +6 -0
- data/Gemfile.lock +3 -2
- data/example/Gemfile +1 -0
- data/example/Gemfile.lock +9 -2
- data/example/test/inherited_type_test.rb +109 -0
- data/lib/minitest/suite/version.rb +1 -1
- data/lib/minitest/suite.rb +14 -1
- data/script/test +2 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 067d6ce4ba991131cffa2bfe98b302c9d65824a5157d2c431ed75fff7195ecb9
|
4
|
+
data.tar.gz: 58f8d85c0fdd73ac90988206c3b0a0207b11fb5cf71807a105131af44a46f0c0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 001f6440cdf97d061a4166f4a94f632bbcd2d42db5caea3471e099c87509c72ff8e6988884742b03efd51da85af4139448f395d79733ed141c7a1ab44dc197e7
|
7
|
+
data.tar.gz: 4132976ada3d8bc9733499bcb96359abce8face1dd592b7eeb038cdd367006c4a3b79ee4634106d1f053e8c17fa0591d280731c3a67e5d41e4b4571852d26724
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
# 0.0.3
|
2
|
+
|
3
|
+
- Adds support for inheriting a suite from a parent type (e.g. a ModelTest that
|
4
|
+
sets `suite :model` will pass on that suite to its descendant tests unless
|
5
|
+
they override it with a different suite).
|
6
|
+
|
1
7
|
# 0.0.2
|
2
8
|
|
3
9
|
- Adds Minitest::Suite.order= for specifying initial suite order
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
minitest-suite (0.0.
|
4
|
+
minitest-suite (0.0.3)
|
5
5
|
minitest
|
6
6
|
|
7
7
|
GEM
|
@@ -38,6 +38,7 @@ GEM
|
|
38
38
|
|
39
39
|
PLATFORMS
|
40
40
|
arm64-darwin-20
|
41
|
+
arm64-darwin-21
|
41
42
|
|
42
43
|
DEPENDENCIES
|
43
44
|
minitest-suite!
|
@@ -45,4 +46,4 @@ DEPENDENCIES
|
|
45
46
|
standard
|
46
47
|
|
47
48
|
BUNDLED WITH
|
48
|
-
2.2.
|
49
|
+
2.2.30
|
data/example/Gemfile
CHANGED
data/example/Gemfile.lock
CHANGED
@@ -1,22 +1,29 @@
|
|
1
1
|
PATH
|
2
2
|
remote: ..
|
3
3
|
specs:
|
4
|
-
minitest-suite (0.0.
|
4
|
+
minitest-suite (0.0.3)
|
5
5
|
minitest
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
9
9
|
specs:
|
10
|
+
coderay (1.1.3)
|
11
|
+
method_source (1.0.0)
|
10
12
|
minitest (5.14.4)
|
13
|
+
pry (0.14.1)
|
14
|
+
coderay (~> 1.1)
|
15
|
+
method_source (~> 1.0)
|
11
16
|
rake (13.0.6)
|
12
17
|
|
13
18
|
PLATFORMS
|
14
19
|
arm64-darwin-20
|
20
|
+
arm64-darwin-21
|
15
21
|
|
16
22
|
DEPENDENCIES
|
17
23
|
minitest
|
18
24
|
minitest-suite!
|
25
|
+
pry
|
19
26
|
rake
|
20
27
|
|
21
28
|
BUNDLED WITH
|
22
|
-
2.2.
|
29
|
+
2.2.30
|
@@ -0,0 +1,109 @@
|
|
1
|
+
module Exe
|
2
|
+
def self.cution(exe)
|
3
|
+
@executions ||= []
|
4
|
+
@executions << exe
|
5
|
+
end
|
6
|
+
|
7
|
+
def self.cutions
|
8
|
+
@executions || []
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
at_exit do
|
13
|
+
expected = Minitest::Suite.order
|
14
|
+
expected_index = 0
|
15
|
+
|
16
|
+
Exe.cutions.each.with_index do |suite, actual_index|
|
17
|
+
finished_suites = expected_index == 0 ? [] : expected[0..(expected_index - 1)]
|
18
|
+
|
19
|
+
if finished_suites.include?(suite)
|
20
|
+
raise <<~MSG
|
21
|
+
Ensuring order #{expected.inspect} but #{suite.inspect} test was just run
|
22
|
+
out of order. Actual execution order:
|
23
|
+
|
24
|
+
#{Exe.cutions.map(&:inspect).join("\n")}
|
25
|
+
MSG
|
26
|
+
elsif suite == expected[expected_index]
|
27
|
+
# cool
|
28
|
+
else
|
29
|
+
expected_index += 1
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
require "minitest/suite"
|
35
|
+
require "minitest/autorun"
|
36
|
+
|
37
|
+
Minitest::Suite.order = [:model, :weird, :controller]
|
38
|
+
|
39
|
+
class ModelTest < Minitest::Test
|
40
|
+
suite :model
|
41
|
+
end
|
42
|
+
|
43
|
+
class SomeModel < ModelTest
|
44
|
+
def test_it
|
45
|
+
Exe.cution :model
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
class OtherModel < ModelTest
|
50
|
+
def test_it
|
51
|
+
Exe.cution :model
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
class DeepModelTest < ModelTest
|
56
|
+
end
|
57
|
+
|
58
|
+
class OtherOtherModel < DeepModelTest
|
59
|
+
def test_it
|
60
|
+
Exe.cution :model
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
class WeirdModel < ModelTest
|
65
|
+
suite :weird
|
66
|
+
|
67
|
+
def test_it
|
68
|
+
Exe.cution :weird
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
class Controller < Minitest::Test
|
73
|
+
suite :controller
|
74
|
+
end
|
75
|
+
|
76
|
+
class DeepController < Controller
|
77
|
+
end
|
78
|
+
|
79
|
+
class OneController < Controller
|
80
|
+
def test_it
|
81
|
+
Exe.cution :controller
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
class TwoController < Controller
|
86
|
+
def test_it
|
87
|
+
Exe.cution :controller
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
class ThreeController < DeepController
|
92
|
+
def test_it
|
93
|
+
Exe.cution :controller
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
class WeirdController < Controller
|
98
|
+
suite :weird
|
99
|
+
|
100
|
+
def test_it
|
101
|
+
Exe.cution :weird
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
class NoSuite < Minitest::Test
|
106
|
+
def test_it
|
107
|
+
Exe.cution :no_suite
|
108
|
+
end
|
109
|
+
end
|
data/lib/minitest/suite.rb
CHANGED
@@ -55,10 +55,23 @@ module Minitest
|
|
55
55
|
end
|
56
56
|
end
|
57
57
|
|
58
|
+
def self.registration_for(test_class)
|
59
|
+
first_registered_ancestor = test_class.ancestors.find { |ancestor|
|
60
|
+
registrations.any? { |r| r.test == ancestor }
|
61
|
+
}
|
62
|
+
if first_registered_ancestor
|
63
|
+
Registration.new(
|
64
|
+
test: test_class,
|
65
|
+
suite: registrations.find { |r| r.test == first_registered_ancestor }.suite
|
66
|
+
)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
58
70
|
class PartialArrayProxy < Array
|
59
71
|
def shuffle
|
60
|
-
filtered =
|
72
|
+
filtered = map { |test_class| Suite.registration_for(test_class) }.compact
|
61
73
|
suites = Suite.order | (filtered.map(&:suite).uniq + [:__unsuitened]).shuffle
|
74
|
+
|
62
75
|
suites.flat_map { |suite|
|
63
76
|
if suite == :__unsuitened
|
64
77
|
(self - filtered.map(&:test)).shuffle
|
data/script/test
CHANGED
@@ -23,3 +23,5 @@ ORDER="suite1" bundle exec ruby test/suite_fixed_order_test.rb
|
|
23
23
|
ORDER="suite2,suite3" bundle exec ruby test/suite_fixed_order_test.rb
|
24
24
|
ORDER="suite3,suite2,suite1" bundle exec ruby test/suite_fixed_order_test.rb
|
25
25
|
|
26
|
+
bundle exec ruby test/inherited_type_test.rb
|
27
|
+
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: minitest-suite
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin Searls
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-11-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
@@ -44,6 +44,7 @@ files:
|
|
44
44
|
- example/Gemfile
|
45
45
|
- example/Gemfile.lock
|
46
46
|
- example/Rakefile
|
47
|
+
- example/test/inherited_type_test.rb
|
47
48
|
- example/test/suite_filter_test.rb
|
48
49
|
- example/test/suite_fixed_order_test.rb
|
49
50
|
- example/test/suite_shuffle_test.rb
|
@@ -72,7 +73,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
72
73
|
- !ruby/object:Gem::Version
|
73
74
|
version: '0'
|
74
75
|
requirements: []
|
75
|
-
rubygems_version: 3.2.
|
76
|
+
rubygems_version: 3.2.22
|
76
77
|
signing_key:
|
77
78
|
specification_version: 4
|
78
79
|
summary: Re-order your Minitest suite into logical sub-suites/groups
|