File tree Expand file tree Collapse file tree 3 files changed +12
-9
lines changed Expand file tree Collapse file tree 3 files changed +12
-9
lines changed Original file line number Diff line number Diff line change 5
5
module Rails
6
6
module LineFiltering # :nodoc:
7
7
def run ( reporter , options = { } )
8
- options [ :filter ] = Rails ::TestUnit ::Runner . compose_filter ( self , options [ :filter ] )
8
+ options = options . merge ( filter : Rails ::TestUnit ::Runner . compose_filter ( self , options [ :filter ] ) )
9
9
10
10
super
11
11
end
Original file line number Diff line number Diff line change @@ -52,7 +52,7 @@ def load_tests(argv)
52
52
end
53
53
54
54
def compose_filter ( runnable , filter )
55
- filter = escape_declarative_test_filter ( filter )
55
+ filter = normalize_declarative_test_filter ( filter )
56
56
57
57
if filters . any? { |_ , lines | lines . any? }
58
58
CompositeFilter . new ( runnable , filter , filters )
@@ -104,12 +104,12 @@ def list_tests(patterns)
104
104
tests
105
105
end
106
106
107
- def escape_declarative_test_filter ( filter )
108
- # NOTE: This method may be applied multiple times, so any
109
- # transformations MUST BE idempotent.
107
+ def normalize_declarative_test_filter ( filter )
110
108
if filter . is_a? ( String )
111
109
if regexp_filter? ( filter )
112
- filter = filter . gsub ( /\s +/ , '[\s_]+' )
110
+ # Minitest::Spec::DSL#it does not replace whitespace in method
111
+ # names, so match unmodified method names as well.
112
+ filter = filter . gsub ( /\s +/ , "_" ) . delete_suffix ( "/" ) + "|" + filter . delete_prefix ( "/" )
113
113
elsif !filter . start_with? ( "test_" )
114
114
filter = "test_#{ filter . gsub ( /\s +/ , "_" ) } "
115
115
end
Original file line number Diff line number Diff line change @@ -693,7 +693,7 @@ class PostTest < ActiveSupport::TestCase
693
693
end
694
694
RUBY
695
695
696
- run_test_command ( "test/models/post_test.rb -n '/greets foo|greets . . bar/'" ) . tap do |output |
696
+ run_test_command ( "test/models/post_test.rb -n '/greets foo|greets . .\\ bar/'" ) . tap do |output |
697
697
assert_match "hello foo" , output
698
698
assert_match "hello again foo" , output
699
699
assert_match "hello bar" , output
@@ -703,9 +703,12 @@ class PostTest < ActiveSupport::TestCase
703
703
704
704
def test_declarative_style_regexp_filter_with_minitest_spec
705
705
app_file "test/models/post_test.rb" , <<~RUBY
706
+ require "test_helper"
706
707
require "minitest/spec"
707
708
708
- class PostTest < Minitest::Spec
709
+ class PostTest < ActiveSupport::TestCase
710
+ extend Minitest::Spec::DSL
711
+
709
712
it "greets foo" do
710
713
puts "hello foo"
711
714
assert true
@@ -727,7 +730,7 @@ class PostTest < Minitest::Spec
727
730
end
728
731
RUBY
729
732
730
- run_test_command ( "test/models/post_test.rb -n '/greets foo|greets . . bar/'" ) . tap do |output |
733
+ run_test_command ( "test/models/post_test.rb -n '/greets foo|greets . .\\ bar/'" ) . tap do |output |
731
734
assert_match "hello foo" , output
732
735
assert_match "hello again foo" , output
733
736
assert_match "hello bar" , output
You can’t perform that action at this time.
0 commit comments