aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--Library/Homebrew/cmd/tests.rb1
-rw-r--r--Library/Homebrew/test/Gemfile1
-rw-r--r--Library/Homebrew/test/Gemfile.lock8
-rw-r--r--Library/Homebrew/test/testing_env.rb16
5 files changed, 27 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index 59abbf727..c56971b7a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,6 +17,7 @@
/Library/Homebrew/test/.bundle
/Library/Homebrew/test/bin
/Library/Homebrew/test/vendor
+/Library/Homebrew/test/coverage
/Library/LinkedKegs
/Library/PinnedKegs
/Library/Taps
diff --git a/Library/Homebrew/cmd/tests.rb b/Library/Homebrew/cmd/tests.rb
index a74980fbd..a686a7f8c 100644
--- a/Library/Homebrew/cmd/tests.rb
+++ b/Library/Homebrew/cmd/tests.rb
@@ -2,6 +2,7 @@ module Homebrew
def tests
(HOMEBREW_LIBRARY/"Homebrew/test").cd do
ENV["TESTOPTS"] = "-v" if ARGV.verbose?
+ ENV["HOMEBREW_TESTS_COVERAGE"] = "1" if ARGV.flag? "--coverage"
Homebrew.install_gem_setup_path! "bundler"
quiet_system("bundle", "check") || \
system("bundle", "install", "--path", "vendor/bundle")
diff --git a/Library/Homebrew/test/Gemfile b/Library/Homebrew/test/Gemfile
index 7c224bd61..b156aab8b 100644
--- a/Library/Homebrew/test/Gemfile
+++ b/Library/Homebrew/test/Gemfile
@@ -3,3 +3,4 @@ source "https://rubygems.org"
gem "mocha", "~> 1.1"
gem "minitest", "~> 5.3"
gem "rake", "~> 10.3"
+gem "simplecov", "~> 0.10.0", :require => false
diff --git a/Library/Homebrew/test/Gemfile.lock b/Library/Homebrew/test/Gemfile.lock
index 5b66cd04e..9663a26c4 100644
--- a/Library/Homebrew/test/Gemfile.lock
+++ b/Library/Homebrew/test/Gemfile.lock
@@ -1,11 +1,18 @@
GEM
remote: https://rubygems.org/
specs:
+ docile (1.1.5)
+ json (1.8.3)
metaclass (0.0.4)
minitest (5.7.0)
mocha (1.1.0)
metaclass (~> 0.0.1)
rake (10.4.2)
+ simplecov (0.10.0)
+ docile (~> 1.1.0)
+ json (~> 1.8)
+ simplecov-html (~> 0.10.0)
+ simplecov-html (0.10.0)
PLATFORMS
ruby
@@ -14,3 +21,4 @@ DEPENDENCIES
minitest (~> 5.3)
mocha (~> 1.1)
rake (~> 10.3)
+ simplecov (~> 0.10.0)
diff --git a/Library/Homebrew/test/testing_env.rb b/Library/Homebrew/test/testing_env.rb
index d960d35d5..60434aded 100644
--- a/Library/Homebrew/test/testing_env.rb
+++ b/Library/Homebrew/test/testing_env.rb
@@ -1,6 +1,22 @@
$:.unshift File.expand_path("../..", __FILE__)
$:.unshift File.expand_path("../lib", __FILE__)
+# This must be at the top
+if ENV["HOMEBREW_TESTS_COVERAGE"]
+ require "simplecov"
+ SimpleCov.start do
+ tests_path = File.dirname(__FILE__)
+
+ minimum_coverage 50
+ coverage_dir File.expand_path("#{tests_path}/coverage")
+ root File.expand_path("#{tests_path}/..")
+
+ add_filter "Homebrew/test"
+ add_filter "vendor/bundle"
+ add_filter "Homebrew/vendor"
+ end
+end
+
require "global"
# Test environment setup