1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Don't run all tests when files end in a colon.

If running `bin/rails t test/models/bunny_test.rb:` we'd implicitly run all the
tests in the bunny test. I now highly doubt that people would ever put in a line
filter without a line *and* want that to mean run all tests in that file.

Instead, change regex to require a line digit after the colon, so runs without a
line at the end would fail to require the test file.

This also has the side benefit of breaking requiring a file with many colons:
`bin/rails t test/models/bunny_test.rb:::::::::::::4`

Think this means I've had enough colonoscopy to last me through the year :)
This commit is contained in:
Kasper Timm Hansen 2016-01-18 21:37:12 +01:00
parent 426b3127dd
commit 88881d2b50
2 changed files with 1 additions and 9 deletions

View file

@ -15,7 +15,7 @@ module Rails
private private
def expand_patterns(patterns) def expand_patterns(patterns)
patterns.map do |arg| patterns.map do |arg|
arg = arg.gsub(/(:\d*)+?$/, '') arg = arg.gsub(/(:\d+)+?$/, '')
if Dir.exist?(arg) if Dir.exist?(arg)
"#{arg}/**/*_test.rb" "#{arg}/**/*_test.rb"
else else

View file

@ -382,14 +382,6 @@ module ApplicationTests
end end
end end
def test_line_filter_without_line_runs_all_tests
create_test_file :models, 'account'
run_test_command('test/models/account_test.rb:').tap do |output|
assert_match 'AccountTest', output
end
end
def test_shows_filtered_backtrace_by_default def test_shows_filtered_backtrace_by_default
create_backtrace_test create_backtrace_test