minitest-tagz 1.2.3 → 1.3.0
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/README.md +7 -0
- data/lib/minitest/tagz.rb +29 -7
- data/lib/minitest/tagz/version.rb +1 -1
- data/minitest-tagz.gemspec +1 -0
- metadata +15 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 149d2f07923982e3796977d1a3153ddd835971c3
|
4
|
+
data.tar.gz: 37a69269c8b29c887c6a8d903473ddc71ace505a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 247eae22cbd95e61fa89dc70b5a1d4ad33a6c32a76af50edab6cb0d276e13034140acdd1b1ab047b3f352e3468b0d40ffef80020363615d12309905bf74d50e7
|
7
|
+
data.tar.gz: 14aaeb31fe597504c47d3a727d3c7923169f1c1584e74427ea1cd606de223d2be2da96ae803e2d22d070ba88abb1d084a72694603d386fade420d111d6d168f2
|
data/README.md
CHANGED
@@ -35,6 +35,13 @@ Then, for example, you can run all tests with the `:fast` and `:login` tags:
|
|
35
35
|
bundle exec rake test TAGS=fast,login
|
36
36
|
```
|
37
37
|
|
38
|
+
You can also run all test without a particular tag or mix any subset.
|
39
|
+
Below we run all the `:fast` tags, but not the `:login` tags
|
40
|
+
|
41
|
+
```rb
|
42
|
+
bundle exec rake test TAGS=-login,fast
|
43
|
+
```
|
44
|
+
|
38
45
|
Here's another example which will allow you to drop in a `:focus` tag wherever you want:
|
39
46
|
|
40
47
|
```rb
|
data/lib/minitest/tagz.rb
CHANGED
@@ -13,16 +13,26 @@ module Minitest
|
|
13
13
|
module RunnableMethodsFilter
|
14
14
|
def runnable_methods
|
15
15
|
all_runnables = super
|
16
|
-
|
17
|
-
|
16
|
+
|
17
|
+
if Tagz.positive_tags.any?
|
18
|
+
all_runnables.select! do |r|
|
19
|
+
serialized = MinitestRunnerStrategy.serialize(self, r)
|
20
|
+
tags_on_runnable = MinitestRunnerStrategy.tag_map[serialized]
|
21
|
+
next false unless tags_on_runnable
|
22
|
+
(Tagz.positive_tags - tags_on_runnable).empty?
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
if Tagz.negative_tags.any?
|
27
|
+
all_runnables.reject! do |r|
|
18
28
|
serialized = MinitestRunnerStrategy.serialize(self, r)
|
19
29
|
tags_on_runnable = MinitestRunnerStrategy.tag_map[serialized]
|
20
30
|
next false unless tags_on_runnable
|
21
|
-
(Tagz.
|
31
|
+
(Tagz.negative_tags & tags_on_runnable).any?
|
22
32
|
end
|
23
|
-
else
|
24
|
-
all_runnables
|
25
33
|
end
|
34
|
+
|
35
|
+
all_runnables
|
26
36
|
end
|
27
37
|
end
|
28
38
|
|
@@ -108,7 +118,7 @@ module Minitest
|
|
108
118
|
def initialize(patchers, owner, pending_tags)
|
109
119
|
@patchers = patchers
|
110
120
|
@owner = owner
|
111
|
-
@pending_tags = pending_tags
|
121
|
+
@pending_tags = pending_tags.map(&:to_s)
|
112
122
|
super()
|
113
123
|
end
|
114
124
|
|
@@ -201,11 +211,23 @@ module Minitest
|
|
201
211
|
# @param [Boolean] run_all_if_no_match - will run all tests if no tests are found with the tag
|
202
212
|
# @param [Boolean] log_if_no_match - puts if no match specs found
|
203
213
|
def choose_tags(*tags, log_if_no_match: false, run_all_if_no_match: false)
|
204
|
-
@chosen_tags = tags.map(&:
|
214
|
+
@chosen_tags = tags.map(&:to_s)
|
205
215
|
@run_all_if_no_match = run_all_if_no_match
|
206
216
|
@log_if_no_match = log_if_no_match
|
207
217
|
end
|
208
218
|
|
219
|
+
def chosen_tags
|
220
|
+
@chosen_tags || []
|
221
|
+
end
|
222
|
+
|
223
|
+
def positive_tags
|
224
|
+
chosen_tags.reject {|t| t.is_a?(String) && t[/^-/]}
|
225
|
+
end
|
226
|
+
|
227
|
+
def negative_tags
|
228
|
+
chosen_tags.select {|t| t.is_a?(String) && t[/^-/]}.map {|t| t[1..-1]}
|
229
|
+
end
|
230
|
+
|
209
231
|
def declare_tag_assignment(owner, pending_tags)
|
210
232
|
tag_machine = TaggerFactory.create_tagger(owner, pending_tags)
|
211
233
|
tag_machine.tags_declared
|
data/minitest-tagz.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: minitest-tagz
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josh Bodah
|
@@ -108,6 +108,20 @@ dependencies:
|
|
108
108
|
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: byebug
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
111
125
|
description: allows you to tag different Minitest tests with tags that can be used
|
112
126
|
to filter tests
|
113
127
|
email:
|