mutant-rspec 0.11.18 → 0.11.20
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/lib/mutant/integration/rspec.rb +32 -13
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: af6c6f50c8549edc2da0b10a77fd2b06e8ffffe43b8714a5bfc8616bfbb1d72a
|
4
|
+
data.tar.gz: 1853428bef36290c81da8a9ab4965f99dec93fe361edd76b743b8aa360eb85d8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b9d02be8205446e2929bd0745ba325014481df57fac8250629b6bcaa2cac848d32b34adb59adadb013b49fd4ee0fc4f297b21f311db8a00020a294e65355853f
|
7
|
+
data.tar.gz: 4a6fc890d38e2e8d4cc246d0148e972b6ee332c89fae884678788fc767bcfb16f9c366f8cbce3208eaac5dc76d62fea90eb25263d8e106cfc6008e4b02b6a122
|
@@ -43,6 +43,8 @@ module Mutant
|
|
43
43
|
# @return [self]
|
44
44
|
def setup
|
45
45
|
@runner.setup($stderr, $stdout)
|
46
|
+
example_group_map
|
47
|
+
reset_examples
|
46
48
|
self
|
47
49
|
end
|
48
50
|
memoize :setup
|
@@ -53,8 +55,7 @@ module Mutant
|
|
53
55
|
#
|
54
56
|
# @return [Result::Test]
|
55
57
|
def call(tests)
|
56
|
-
|
57
|
-
filter_examples(&examples.public_method(:include?))
|
58
|
+
setup_examples(tests.map(&all_tests_index))
|
58
59
|
start = timer.now
|
59
60
|
passed = @runner.run_specs(@rspec_world.ordered_example_groups).equal?(EXIT_SUCCESS)
|
60
61
|
Result::Test.new(
|
@@ -63,7 +64,7 @@ module Mutant
|
|
63
64
|
)
|
64
65
|
end
|
65
66
|
|
66
|
-
#
|
67
|
+
# All tests
|
67
68
|
#
|
68
69
|
# @return [Enumerable<Test>]
|
69
70
|
def all_tests
|
@@ -71,8 +72,26 @@ module Mutant
|
|
71
72
|
end
|
72
73
|
memoize :all_tests
|
73
74
|
|
75
|
+
# Available tests
|
76
|
+
#
|
77
|
+
# @return [Enumerable<Test>]
|
78
|
+
def available_tests
|
79
|
+
all_tests_index.select { |_test, example| example.metadata.fetch(:mutant, true) }.keys
|
80
|
+
end
|
81
|
+
memoize :available_tests
|
82
|
+
|
74
83
|
private
|
75
84
|
|
85
|
+
def reset_examples
|
86
|
+
@rspec_world.filtered_examples.each_value(&:clear)
|
87
|
+
end
|
88
|
+
|
89
|
+
def setup_examples(examples)
|
90
|
+
examples.each do |example|
|
91
|
+
@rspec_world.filtered_examples.fetch(example_group_map.fetch(example)) << example
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
76
95
|
def all_tests_index
|
77
96
|
all_examples.each_with_index.with_object({}) do |(example, example_index), index|
|
78
97
|
index[parse_example(example, example_index)] = example
|
@@ -95,6 +114,15 @@ module Mutant
|
|
95
114
|
)
|
96
115
|
end
|
97
116
|
|
117
|
+
def example_group_map
|
118
|
+
@rspec_world.example_groups.flat_map(&:descendants).each_with_object({}) do |example_group, map|
|
119
|
+
example_group.examples.each do |example|
|
120
|
+
map[example] = example_group
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
124
|
+
memoize :example_group_map
|
125
|
+
|
98
126
|
def parse_metadata(metadata)
|
99
127
|
if metadata.key?(:mutant_expression)
|
100
128
|
expression = metadata.fetch(:mutant_expression)
|
@@ -114,17 +142,8 @@ module Mutant
|
|
114
142
|
end
|
115
143
|
|
116
144
|
def all_examples
|
117
|
-
@rspec_world.example_groups.flat_map(&:descendants).flat_map(&:examples)
|
118
|
-
example.metadata.fetch(:mutant, true)
|
119
|
-
end
|
145
|
+
@rspec_world.example_groups.flat_map(&:descendants).flat_map(&:examples)
|
120
146
|
end
|
121
|
-
|
122
|
-
def filter_examples(&predicate)
|
123
|
-
@rspec_world.filtered_examples.each_value do |examples|
|
124
|
-
examples.keep_if(&predicate)
|
125
|
-
end
|
126
|
-
end
|
127
|
-
|
128
147
|
end # Rspec
|
129
148
|
end # Integration
|
130
149
|
end # Mutant
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mutant-rspec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.11.
|
4
|
+
version: 0.11.20
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Markus Schirp
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-05-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mutant
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.11.
|
19
|
+
version: 0.11.20
|
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: 0.11.
|
26
|
+
version: 0.11.20
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rspec-core
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -74,7 +74,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
requirements: []
|
77
|
-
rubygems_version: 3.
|
77
|
+
rubygems_version: 3.4.10
|
78
78
|
signing_key:
|
79
79
|
specification_version: 4
|
80
80
|
summary: Rspec integration for mutant
|