Merge pull request #1913 from reitermarkus/testing-env

Use array of constants to set up test directories.
This commit is contained in:
Markus Reiter 2017-02-03 20:08:28 +01:00 committed by GitHub
commit 574a5274c0
5 changed files with 45 additions and 28 deletions

View File

@ -2,6 +2,7 @@ source "https://rubygems.org"
gem "mocha" gem "mocha"
gem "minitest" gem "minitest"
gem "minitest-reporters"
gem "parallel_tests" gem "parallel_tests"
group :coverage do group :coverage do

View File

@ -1,6 +1,8 @@
GEM GEM
remote: https://rubygems.org/ remote: https://rubygems.org/
specs: specs:
ansi (1.5.0)
builder (3.2.3)
codecov (0.1.9) codecov (0.1.9)
json json
simplecov simplecov
@ -9,11 +11,17 @@ GEM
json (2.0.3) json (2.0.3)
metaclass (0.0.4) metaclass (0.0.4)
minitest (5.10.1) minitest (5.10.1)
minitest-reporters (1.1.14)
ansi
builder
minitest (>= 5.0)
ruby-progressbar
mocha (1.2.1) mocha (1.2.1)
metaclass (~> 0.0.1) metaclass (~> 0.0.1)
parallel (1.10.0) parallel (1.10.0)
parallel_tests (2.13.0) parallel_tests (2.13.0)
parallel parallel
ruby-progressbar (1.8.1)
simplecov (0.13.0) simplecov (0.13.0)
docile (~> 1.1.0) docile (~> 1.1.0)
json (>= 1.8, < 3) json (>= 1.8, < 3)
@ -27,6 +35,7 @@ PLATFORMS
DEPENDENCIES DEPENDENCIES
codecov codecov
minitest minitest
minitest-reporters
mocha mocha
parallel_tests parallel_tests
simplecov simplecov

View File

@ -9,13 +9,13 @@ module Test
klass.make_my_diffs_pretty! klass.make_my_diffs_pretty!
end end
def before_setup def setup
@__files_before_test = [] @__files_before_test = []
Find.find(TEST_TMPDIR) { |f| @__files_before_test << f.sub(TEST_TMPDIR, "") } Find.find(TEST_TMPDIR) { |f| @__files_before_test << f.sub(TEST_TMPDIR, "") }
super super
end end
def after_teardown def teardown
super super
files_after_test = [] files_after_test = []
Find.find(TEST_TMPDIR) { |f| files_after_test << f.sub(TEST_TMPDIR, "") } Find.find(TEST_TMPDIR) { |f| files_after_test << f.sub(TEST_TMPDIR, "") }

View File

@ -1,3 +1,6 @@
require "formulary"
require "tap"
module Homebrew module Homebrew
class TestCase < ::Minitest::Test class TestCase < ::Minitest::Test
require "test/support/helper/fs_leak_logger" require "test/support/helper/fs_leak_logger"
@ -12,7 +15,21 @@ module Homebrew
TEST_SHA1 = "deadbeefdeadbeefdeadbeefdeadbeefdeadbeef".freeze TEST_SHA1 = "deadbeefdeadbeefdeadbeefdeadbeefdeadbeef".freeze
TEST_SHA256 = "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef".freeze TEST_SHA256 = "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef".freeze
TEST_DIRECTORIES = [
CoreTap.instance.path/"Formula",
HOMEBREW_CACHE,
HOMEBREW_CACHE_FORMULA,
HOMEBREW_CELLAR,
HOMEBREW_LOCK_DIR,
HOMEBREW_LOGS,
HOMEBREW_TEMP,
].freeze
def setup def setup
# These directories need to be created before
# `FSLeakLogger` is called with `super`.
TEST_DIRECTORIES.each(&:mkpath)
super super
@__argv = ARGV.dup @__argv = ARGV.dup
@ -25,15 +42,10 @@ module Homebrew
Tab.clear_cache Tab.clear_cache
coretap = CoreTap.new FileUtils.rm_rf [
paths_to_delete = [ TEST_DIRECTORIES.map(&:children),
HOMEBREW_LINKED_KEGS, HOMEBREW_LINKED_KEGS,
HOMEBREW_PINNED_KEGS, HOMEBREW_PINNED_KEGS,
HOMEBREW_CELLAR.children,
HOMEBREW_CACHE.children,
HOMEBREW_LOCK_DIR.children,
HOMEBREW_LOGS.children,
HOMEBREW_TEMP.children,
HOMEBREW_PREFIX/".git", HOMEBREW_PREFIX/".git",
HOMEBREW_PREFIX/"bin", HOMEBREW_PREFIX/"bin",
HOMEBREW_PREFIX/"share", HOMEBREW_PREFIX/"share",
@ -45,12 +57,10 @@ module Homebrew
HOMEBREW_LIBRARY/"Taps/homebrew/homebrew-services", HOMEBREW_LIBRARY/"Taps/homebrew/homebrew-services",
HOMEBREW_LIBRARY/"Taps/homebrew/homebrew-shallow", HOMEBREW_LIBRARY/"Taps/homebrew/homebrew-shallow",
HOMEBREW_REPOSITORY/".git", HOMEBREW_REPOSITORY/".git",
coretap.path/".git", CoreTap.instance.path/".git",
coretap.alias_dir, CoreTap.instance.alias_dir,
coretap.formula_dir.children, CoreTap.instance.path/"formula_renames.json",
coretap.path/"formula_renames.json", ]
].flatten
FileUtils.rm_rf paths_to_delete
super super
end end

View File

@ -1,21 +1,18 @@
$:.unshift File.expand_path("../..", __FILE__)
$:.unshift File.expand_path("../support/lib", __FILE__)
require "simplecov" if ENV["HOMEBREW_TESTS_COVERAGE"]
require "global"
require "formulary"
# Test environment setup
(HOMEBREW_LIBRARY/"Taps/homebrew/homebrew-core/Formula").mkpath
%w[cache formula_cache locks cellar logs temp].each { |d| HOMEBREW_PREFIX.parent.join(d).mkpath }
begin begin
require "minitest/autorun" require "minitest/autorun"
require "parallel_tests/test/runtime_logger" require "minitest/reporters"
Minitest::Reporters.use! Minitest::Reporters::DefaultReporter.new(color: true)
require "mocha/setup" require "mocha/setup"
require "parallel_tests/test/runtime_logger"
require "simplecov" if ENV["HOMEBREW_TESTS_COVERAGE"]
rescue LoadError rescue LoadError
abort "Run `bundle install` or install the mocha and minitest gems before running the tests" abort "Run `bundle install` before running the tests."
end end
$LOAD_PATH.unshift(File.expand_path("#{ENV["HOMEBREW_LIBRARY"]}/Homebrew"))
$LOAD_PATH.unshift(File.expand_path("#{ENV["HOMEBREW_LIBRARY"]}/Homebrew/test/support/lib"))
require "global"
require "test/support/helper/test_case" require "test/support/helper/test_case"
require "test/support/helper/integration_command_test_case" require "test/support/helper/integration_command_test_case"