Merge pull request #13158 from apainintheneck/tests-changed-switch
Added --changed option to "brew tests" dev cmd
This commit is contained in:
commit
2d9bfc62be
@ -26,12 +26,16 @@ module Homebrew
|
|||||||
"official external commands."
|
"official external commands."
|
||||||
switch "--byebug",
|
switch "--byebug",
|
||||||
description: "Enable debugging using byebug."
|
description: "Enable debugging using byebug."
|
||||||
|
switch "--changed",
|
||||||
|
description: "Only runs tests on files that were changed from the master branch."
|
||||||
flag "--only=",
|
flag "--only=",
|
||||||
description: "Run only <test_script>`_spec.rb`. Appending `:`<line_number> will start at a "\
|
description: "Run only <test_script>`_spec.rb`. Appending `:`<line_number> will start at a "\
|
||||||
"specific line."
|
"specific line."
|
||||||
flag "--seed=",
|
flag "--seed=",
|
||||||
description: "Randomise tests with the specified <value> instead of a random seed."
|
description: "Randomise tests with the specified <value> instead of a random seed."
|
||||||
|
|
||||||
|
conflicts "--changed", "--only"
|
||||||
|
|
||||||
named_args :none
|
named_args :none
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -124,10 +128,28 @@ module Homebrew
|
|||||||
parallel = false
|
parallel = false
|
||||||
["test/#{test_name}_spec.rb:#{line}"]
|
["test/#{test_name}_spec.rb:#{line}"]
|
||||||
end
|
end
|
||||||
|
elsif args.changed?
|
||||||
|
changed_files = Utils.popen_read("git", "diff", "--name-only", "master")
|
||||||
|
|
||||||
|
raise UsageError, "No files have been changed from the master branch!" if changed_files.blank?
|
||||||
|
|
||||||
|
filestub_regex = %r{Library/Homebrew/([\w/-]+).rb}
|
||||||
|
changed_files.scan(filestub_regex)
|
||||||
|
.map { |filestub| Pathname("test/#{filestub.last}_spec.rb") }
|
||||||
|
.select(&:exist?)
|
||||||
else
|
else
|
||||||
Dir.glob("test/**/*_spec.rb")
|
Dir.glob("test/**/*_spec.rb")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if files.blank?
|
||||||
|
raise UsageError, "The --only= argument requires a valid file or folder name!" if args.only
|
||||||
|
|
||||||
|
if args.changed?
|
||||||
|
opoo "No tests are directly associated with the changed files!"
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
parallel_rspec_log_name = "parallel_runtime_rspec"
|
parallel_rspec_log_name = "parallel_runtime_rspec"
|
||||||
parallel_rspec_log_name = "#{parallel_rspec_log_name}.no_compat" if args.no_compat?
|
parallel_rspec_log_name = "#{parallel_rspec_log_name}.no_compat" if args.no_compat?
|
||||||
parallel_rspec_log_name = "#{parallel_rspec_log_name}.generic" if args.generic?
|
parallel_rspec_log_name = "#{parallel_rspec_log_name}.generic" if args.generic?
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user