aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/dev-cmd/tests.rb
diff options
context:
space:
mode:
authorMarkus Reiter2017-03-01 13:45:46 +0100
committerGitHub2017-03-01 13:45:46 +0100
commit9d67afb72e72b06a30b6f66ef00808ae1d1e653c (patch)
treeda79408e5563570c584c00c13b40f9a7e6f35b11 /Library/Homebrew/dev-cmd/tests.rb
parentd9b43638333b47dd8ed8bcbbb97ef9f8c0ad5756 (diff)
parent487294f8155cbbcc1af22757d632ca352c24d6b8 (diff)
downloadbrew-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.rb74
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