mutant-minitest 0.9.10 → 0.10.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a2dbff1d9394547d7598d69935183e41879ef27f6b710320bb70d17dcf6aeebe
4
- data.tar.gz: 3fd11839d683a6c81bd7f75a4e132341de76e491b5b0744a4af15e1b677d4431
3
+ metadata.gz: 5854652b7b1aaa42b63c6cd490586691d04432c02abd26d952b0b2984f2e99b1
4
+ data.tar.gz: 9ddd4fd2adf7e048f006451e0a01a9f35ea8e0f55a9b412643e2d80aa9b6a3f3
5
5
  SHA512:
6
- metadata.gz: 13adc882fe6a385e698e4bcb1be5594103f79d0db042e668e876a1a69a05215b5f723bfb70b72188da4153535db5b69064dc7399bc7ce8040ec64b52540a5271
7
- data.tar.gz: dfce43ea5c64fbe33560cb2c9fd2a769d1dc6292f01b0ce582e4357f7ec354c4cfe5a26ba9a3965431f3e7d5e325fe17451328006b72cf1a7ffc18b74c2bcda0
6
+ metadata.gz: 61e3499d17819ef947c6d2120e56fe2f0cff6b2e81089a590965b10d33b1a7a3abdc737cb944fec8644156ccbdf20b23c412f4a790843644a65c7d8df6e03b0c
7
+ data.tar.gz: '0569a79cf628350f1dc3b558ce7aa143dd8f730b0c8211f49b68390fd43f4d4f93e6c01543bda614df684833b1400d17b8a964f562d762c75ab5cc6bf75790b5'
@@ -51,13 +51,16 @@ module Mutant
51
51
  reporter.passed?
52
52
  end
53
53
 
54
- # Cover expression syntaxes
54
+ # Parse expressions
55
55
  #
56
- # @return [String, nil]
57
- def expression_syntax
58
- klass.resolve_cover_expression
56
+ # @param [ExpressionParser] parser
57
+ #
58
+ # @return [Array<Expression>]
59
+ def expressions(parser)
60
+ klass.resolve_cover_expressions.map do |syntax|
61
+ parser.apply(syntax).from_right
62
+ end
59
63
  end
60
-
61
64
  end # TestCase
62
65
 
63
66
  private_constant(*constants(false))
@@ -122,23 +125,13 @@ module Mutant
122
125
  end
123
126
  memoize :all_tests_index
124
127
 
125
- # Construct test from test case
126
- #
127
- # @param [TestCase]
128
- #
129
- # @return [Test]
130
128
  def construct_test(test_case)
131
129
  Test.new(
132
- id: test_case.identification,
133
- expression: config.expression_parser.apply(test_case.expression_syntax).from_right
130
+ id: test_case.identification,
131
+ expressions: test_case.expressions(config.expression_parser)
134
132
  )
135
133
  end
136
134
 
137
- # All minitest test cases
138
- #
139
- # Intentional utility method.
140
- #
141
- # @return [Array<TestCase>]
142
135
  def all_test_cases
143
136
  ::Minitest::Runnable
144
137
  .runnables
@@ -146,26 +139,10 @@ module Mutant
146
139
  .flat_map(&method(:test_case))
147
140
  end
148
141
 
149
- # Test if runnable qualifies for mutation testing
150
- #
151
- # @param [Class]
152
- #
153
- # @return [Bool]
154
- #
155
- # ignore :reek:UtilityFunction
156
142
  def allow_runnable?(klass)
157
- !klass.equal?(::Minitest::Runnable) && klass.resolve_cover_expression
143
+ !klass.equal?(::Minitest::Runnable) && klass.resolve_cover_expressions
158
144
  end
159
145
 
160
- # Turn a minitest runnable into its test cases
161
- #
162
- # Intentional utility method.
163
- #
164
- # @param [Object] runnable
165
- #
166
- # @return [Array<TestCase>]
167
- #
168
- # ignore :reek:UtilityFunction
169
146
  def test_case(runnable)
170
147
  runnable.runnable_methods.map { |method| TestCase.new(runnable, method) }
171
148
  end
@@ -20,30 +20,28 @@ module Mutant
20
20
  #
21
21
  # @api public
22
22
  def cover(expression)
23
- if defined?(@cover_expression)
24
- fail "#{self} already declares to cover: #{@cover_expression.inspect}"
25
- end
23
+ @cover_expressions = Set.new unless defined?(@cover_expressions)
26
24
 
27
- @cover_expression = expression
25
+ @cover_expressions << expression
28
26
  end
29
27
 
30
28
  # Effective coverage expression
31
29
  #
32
- # @return [String, nil]
30
+ # @return [Set<String>]
33
31
  #
34
32
  # @api private
35
- def resolve_cover_expression
36
- return @cover_expression if defined?(@cover_expression)
33
+ def resolve_cover_expressions
34
+ return @cover_expressions if defined?(@cover_expressions)
37
35
 
38
- try_superclass_cover_expression
36
+ try_superclass_cover_expressions
39
37
  end
40
38
 
41
39
  private
42
40
 
43
- def try_superclass_cover_expression
41
+ def try_superclass_cover_expressions
44
42
  return if superclass.equal?(::Minitest::Runnable)
45
43
 
46
- superclass.resolve_cover_expression
44
+ superclass.resolve_cover_expressions
47
45
  end
48
46
 
49
47
  end # Coverage
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mutant-minitest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.10
4
+ version: 0.10.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Markus Schirp
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-25 00:00:00.000000000 Z
11
+ date: 2020-11-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.9.10
33
+ version: 0.10.2
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.9.10
40
+ version: 0.10.2
41
41
  description: Minitest integration for mutant
42
42
  email:
43
43
  - mbj@schirp-dso.com
@@ -61,14 +61,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
61
61
  requirements:
62
62
  - - ">="
63
63
  - !ruby/object:Gem::Version
64
- version: '0'
64
+ version: '2.5'
65
65
  required_rubygems_version: !ruby/object:Gem::Requirement
66
66
  requirements:
67
67
  - - ">="
68
68
  - !ruby/object:Gem::Version
69
69
  version: '0'
70
70
  requirements: []
71
- rubygems_version: 3.0.3
71
+ rubygems_version: 3.1.4
72
72
  signing_key:
73
73
  specification_version: 4
74
74
  summary: Minitest integration for mutant