mutant-minitest 0.9.14 → 0.10.4

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: f671536025387526814fe5902499775bd9fdaf320c33684514eeeb4e3d9a5146
4
- data.tar.gz: 42dccdf1961ebd5c6f659a3c8ad9cef01fe9d7020cf58f2b6018329714d56eac
3
+ metadata.gz: 8e40f2c229371d7304517f35ca0154b680d2319d22d717601c2228765b57c92f
4
+ data.tar.gz: 9577ac541fa89fd21d58ebde18568ab77df850f05149f9cc5e476900247e9dc9
5
5
  SHA512:
6
- metadata.gz: 51d4399cf8cf680f72c5065cfbb85366d41991f5f3bf0a9041517e5493800f2bd194985962386503136c3d2ef0f294f432d60765c7b4c79239bc994d2b880b9d
7
- data.tar.gz: 88de7c07f614b595ea1d46b0f7560f8856ca7414b66a109e4f047ec98326c1df86cfe4156b5ae6cba6b882b6c16b58025ac2c63978868721ebc57b9a3ca046c0
6
+ metadata.gz: 8b3efc4b14d3ba1553d32a7a18fccea9c78a6d1860a61ef0c5b22820a53aa5c130a55b083d33c6d3085889f841969652ecc882f0ebdf46c44dd9b26c03a371fd
7
+ data.tar.gz: 385bc373364dcfafce3d9e01fa0ed462162efdcb8184526604175afa042f577ba9ebd99052b6c980ebdadea6cb2acfe4ec740a8ca11e01cc26cd2ed0002d9ba6
@@ -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.14
4
+ version: 0.10.4
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-10-16 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.14
33
+ version: 0.10.4
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.14
40
+ version: 0.10.4
41
41
  description: Minitest integration for mutant
42
42
  email:
43
43
  - mbj@schirp-dso.com
@@ -61,7 +61,7 @@ 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
  - - ">="