diff options
| author | Markus Reiter | 2017-03-01 13:45:46 +0100 |
|---|---|---|
| committer | GitHub | 2017-03-01 13:45:46 +0100 |
| commit | 9d67afb72e72b06a30b6f66ef00808ae1d1e653c (patch) | |
| tree | da79408e5563570c584c00c13b40f9a7e6f35b11 /Library/Homebrew/dev-cmd/tests.rb | |
| parent | d9b43638333b47dd8ed8bcbbb97ef9f8c0ad5756 (diff) | |
| parent | 487294f8155cbbcc1af22757d632ca352c24d6b8 (diff) | |
| download | brew-9d67afb72e72b06a30b6f66ef00808ae1d1e653c.tar.bz2 | |
Merge pull request #2233 from reitermarkus/remove-minitest
Remove Minitest.
Diffstat (limited to 'Library/Homebrew/dev-cmd/tests.rb')
| -rw-r--r-- | Library/Homebrew/dev-cmd/tests.rb | 74 |
1 files changed, 34 insertions, 40 deletions
diff --git a/Library/Homebrew/dev-cmd/tests.rb b/Library/Homebrew/dev-cmd/tests.rb index 50d0c5909..7d6ec51c9 100644 --- a/Library/Homebrew/dev-cmd/tests.rb +++ b/Library/Homebrew/dev-cmd/tests.rb @@ -1,4 +1,4 @@ -#: * `tests` [`-v`] [`--coverage`] [`--generic`] [`--no-compat`] [`--only=`<test_script>`:`<test_method>] [`--seed` <seed>] [`--trace`] [`--online`] [`--official-cmd-taps`]: +#: * `tests` [`-v`] [`--coverage`] [`--generic`] [`--no-compat`] [`--only=`<test_script>`:`<line_number>] [`--seed` <seed>] [`--online`] [`--official-cmd-taps`]: #: Run Homebrew's unit and integration tests. require "fileutils" @@ -7,27 +7,17 @@ require "tap" module Homebrew module_function - def run_tests(executable, files, args = []) - opts = [] - opts << "--serialize-stdout" if ENV["CI"] - - system "bundle", "exec", executable, *opts, "--", *args, "--", *files - - return if $?.success? - Homebrew.failed = true - end - def tests HOMEBREW_LIBRARY_PATH.cd do - ENV.delete "HOMEBREW_VERBOSE" - ENV.delete "VERBOSE" + ENV.delete("HOMEBREW_VERBOSE") + ENV.delete("VERBOSE") ENV.delete("HOMEBREW_CASK_OPTS") ENV["HOMEBREW_NO_ANALYTICS_THIS_RUN"] = "1" ENV["HOMEBREW_DEVELOPER"] = "1" - ENV["TESTOPTS"] = "-v" if ARGV.verbose? ENV["HOMEBREW_NO_COMPAT"] = "1" if ARGV.include? "--no-compat" ENV["HOMEBREW_TEST_GENERIC_OS"] = "1" if ARGV.include? "--generic" ENV["HOMEBREW_NO_GITHUB_API"] = "1" unless ARGV.include? "--online" + if ARGV.include? "--official-cmd-taps" ENV["HOMEBREW_TEST_OFFICIAL_CMD_TAPS"] = "1" end @@ -53,29 +43,29 @@ module Homebrew system "bundle", "install" end - # Make it easier to reproduce test runs. - ENV["SEED"] = ARGV.next if ARGV.include? "--seed" - - files = Dir.glob("test/**/*_{spec,test}.rb") - .reject { |p| p =~ %r{^test/vendor/bundle} } - .reject { |p| !OS.mac? && p =~ %r{^test/(os/mac|cask)(/.*|_(test|spec)\.rb)$} } + parallel = true - test_args = [] - test_args << "--trace" if ARGV.include? "--trace" + files = if ARGV.value("only") + test_name, line = ARGV.value("only").split(":", 2) - if ARGV.value("only") - test_name, test_method = ARGV.value("only").split(":", 2) - files = Dir.glob("test/{#{test_name},#{test_name}/**/*}_{spec,test}.rb") - test_args << "--name=test_#{test_method}" if test_method + if line.nil? + Dir.glob("test/{#{test_name},#{test_name}/**/*}_spec.rb") + else + parallel = false + ["test/#{test_name}_spec.rb:#{line}"] + end + else + Dir.glob("test/**/*_spec.rb").reject { |p| p =~ %r{^test/vendor/bundle/} } end - test_files = files.select { |p| p.end_with?("_test.rb") } - spec_files = files.select { |p| p.end_with?("_spec.rb") } + opts = [] - test_args += ARGV.named.select { |v| v[/^TEST(OPTS)?=/] } - run_tests "parallel_test", test_files, test_args + if ENV["CI"] + opts << "--combine-stderr" + opts << "--serialize-stdout" + end - spec_args = [ + args = [ "--color", "-I", HOMEBREW_LIBRARY_PATH/"test", "--require", "spec_helper", @@ -83,18 +73,22 @@ module Homebrew "--format", "ParallelTests::RSpec::RuntimeLogger", "--out", "tmp/parallel_runtime_rspec.log" ] - spec_args << "--tag" << "~needs_macos" unless OS.mac? - run_tests "parallel_rspec", spec_files, spec_args + args << "--seed" << ARGV.next if ARGV.include? "--seed" - if (fs_leak_log = HOMEBREW_LIBRARY_PATH/"tmp/fs_leak.log").file? - fs_leak_log_content = fs_leak_log.read - unless fs_leak_log_content.empty? - opoo "File leak is detected" - puts fs_leak_log_content - Homebrew.failed = true - end + unless OS.mac? + args << "--tag" << "~needs_macos" + files = files.reject { |p| p =~ %r{^test/(os/mac|cask)(/.*|_spec\.rb)$} } end + + if parallel + system "bundle", "exec", "parallel_rspec", *opts, "--", *args, "--", *files + else + system "bundle", "exec", "rspec", *args, "--", *files + end + + return if $?.success? + Homebrew.failed = true end end end |
