mutant-minitest 0.9.13 → 0.10.3

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: e38c42e0fecd727bfd4d08935ec21ed99c696b98482344be30a4eaafcea2112a
4
- data.tar.gz: f4a403f63be5f9b936cc5f18e75dfc919a371e08452f2c56bd3fece53e94804a
3
+ metadata.gz: 197ac8f0e893dd7238ba2031fd5e8eb49c9f7bda980b81abc1e1c5143296457d
4
+ data.tar.gz: e65098e5517dcfcf03f957a7f008ec1942068042a4a2bea65f419e659b415641
5
5
  SHA512:
6
- metadata.gz: 648e60278ac2523adf0deab7c7721f5886edad30c2be8b2b116605093808b90059579774922586df2141393c7c60e79aa4f2610a46e411713c0a43e46e1fbbca
7
- data.tar.gz: dce19109ad86817c59299ee086edc3eed205d1fb1d9639e6a6d7cdf5fc1ada0dc2931d7e4cdb0c4991d830bea8b109846845fb8237ab003033ffea3ff41bf669
6
+ metadata.gz: aa878f1501df6d387cc332b792db937a63fb060f2f1dc32c92fed615fffb328c44df94fa0631a4da76b09781cb6f0d0456dab3b0056b56b4dc2cf1d2d7d775e0
7
+ data.tar.gz: 7179755d3b1e4d23847c720b712972667082b46d39827a5191b8a518310d09136f93ce848b0f4c9a3f484bae31b1e29db756e79a1a80d673b815ac46bee220df
@@ -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
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.13
4
+ version: 0.10.3
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-07 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.13
33
+ version: 0.10.3
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.13
40
+ version: 0.10.3
41
41
  description: Minitest integration for mutant
42
42
  email:
43
43
  - mbj@schirp-dso.com
@@ -48,7 +48,6 @@ extra_rdoc_files:
48
48
  files:
49
49
  - LICENSE
50
50
  - lib/mutant/integration/minitest.rb
51
- - lib/mutant/minitest/coverage.rb
52
51
  homepage: https://github.com/mbj/mutant
53
52
  licenses:
54
53
  - Nonstandard
@@ -61,14 +60,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
61
60
  requirements:
62
61
  - - ">="
63
62
  - !ruby/object:Gem::Version
64
- version: '0'
63
+ version: '2.5'
65
64
  required_rubygems_version: !ruby/object:Gem::Requirement
66
65
  requirements:
67
66
  - - ">="
68
67
  - !ruby/object:Gem::Version
69
68
  version: '0'
70
69
  requirements: []
71
- rubygems_version: 3.1.2
70
+ rubygems_version: 3.1.4
72
71
  signing_key:
73
72
  specification_version: 4
74
73
  summary: Minitest integration for mutant
@@ -1,53 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'minitest'
4
-
5
- module Mutant
6
- module Minitest
7
- module Coverage
8
- # Setup coverage declaration for current class
9
- #
10
- # @param [String]
11
- #
12
- # @example
13
- #
14
- # class MyTest < MiniTest::Test
15
- # cover 'MyCode*'
16
- #
17
- # def test_some_stuff
18
- # end
19
- # end
20
- #
21
- # @api public
22
- def cover(expression)
23
- if defined?(@cover_expression)
24
- fail "#{self} already declares to cover: #{@cover_expression.inspect}"
25
- end
26
-
27
- @cover_expression = expression
28
- end
29
-
30
- # Effective coverage expression
31
- #
32
- # @return [String, nil]
33
- #
34
- # @api private
35
- def resolve_cover_expression
36
- return @cover_expression if defined?(@cover_expression)
37
-
38
- try_superclass_cover_expression
39
- end
40
-
41
- private
42
-
43
- def try_superclass_cover_expression
44
- return if superclass.equal?(::Minitest::Runnable)
45
-
46
- superclass.resolve_cover_expression
47
- end
48
-
49
- end # Coverage
50
- end # Minitest
51
- end # Mutant
52
-
53
- Minitest::Test.extend(Mutant::Minitest::Coverage)