Disable simplecov on travis-ci
MSP-11671 `bundler install --without coverage` will not install `simplecov`. Running without simplecov changes the average runtime of `rake cucumber:boot` from (n=13) 112.50 seconds to (n=10) 32.17 seconds (-71.41%). (-73.68% from 2c1203ba49d49603aec169eed053ab929ccdedc6.) Raw data: https://docs.google.com/spreadsheets/d/1vCRi_38Go3Wfq670eDCXMTSSXL1blSbk6NQsgpOqfYw/edit?usp=sharing.bug/bundler_fix
parent
08a8cee08a
commit
633b4b9e51
|
@ -1,3 +1,4 @@
|
|||
bundler_env: --without coverage
|
||||
env:
|
||||
- RAKE_TASK=cucumber
|
||||
- RAKE_TASK=cucumber:boot
|
||||
|
|
12
Gemfile
12
Gemfile
|
@ -3,6 +3,14 @@ source 'https://rubygems.org'
|
|||
# spec.add_runtime_dependency '<name>', [<version requirements>]
|
||||
gemspec name: 'metasploit-framework'
|
||||
|
||||
# separate from test as simplecov is not run on travis-ci
|
||||
group :coverage do
|
||||
# code coverage for tests
|
||||
# any version newer than 0.5.4 gives an Encoding error when trying to read the source files.
|
||||
# see: https://github.com/colszowka/simplecov/issues/127 (hopefully fixed in 0.8.0)
|
||||
gem 'simplecov', '0.5.4', :require => false
|
||||
end
|
||||
|
||||
group :db do
|
||||
gemspec name: 'metasploit-framework-db'
|
||||
end
|
||||
|
@ -44,10 +52,6 @@ group :test do
|
|||
# cucumber + automatic database cleaning with database_cleaner
|
||||
gem 'cucumber-rails', :require => false
|
||||
gem 'shoulda-matchers'
|
||||
# code coverage for tests
|
||||
# any version newer than 0.5.4 gives an Encoding error when trying to read the source files.
|
||||
# see: https://github.com/colszowka/simplecov/issues/127 (hopefully fixed in 0.8.0)
|
||||
gem 'simplecov', '0.5.4', :require => false
|
||||
# Manipulate Time.now in specs
|
||||
gem 'timecop'
|
||||
end
|
||||
|
|
|
@ -9,6 +9,7 @@ all_environments = [
|
|||
|
||||
Bundler.require(
|
||||
*Rails.groups(
|
||||
coverage: [:test],
|
||||
db: all_environments,
|
||||
pcap: all_environments
|
||||
)
|
||||
|
|
|
@ -4,6 +4,8 @@ Before do
|
|||
@aruba_timeout_seconds = 8.minutes
|
||||
end
|
||||
|
||||
# don't setup child processes to load simplecov_setup.rb if simplecov isn't installed
|
||||
unless Bundler.settings.without.include?(:coverage)
|
||||
Before do |scenario|
|
||||
command_name = case scenario
|
||||
when Cucumber::Ast::Scenario, Cucumber::Ast::ScenarioOutline
|
||||
|
@ -24,3 +26,4 @@ Before do |scenario|
|
|||
# set environment variable so child processes will merge their coverage data with parent process's coverage data.
|
||||
set_env('RUBYOPT', "#{ENV['RUBYOPT']} -r#{simplecov_setup_pathname}")
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,11 +1,16 @@
|
|||
# @note this file is loaded in env.rb to setup simplecov using RUBYOPTs for child processes
|
||||
|
||||
simplecov_command_name = ENV['SIMPLECOV_COMMAND_NAME']
|
||||
|
||||
# will not be set if hook does not run because `bundle install --without coverage`
|
||||
if simplecov_command_name
|
||||
require 'simplecov'
|
||||
|
||||
require 'pathname'
|
||||
|
||||
root = Pathname(__FILE__).expand_path.parent.parent.parent
|
||||
|
||||
SimpleCov.command_name(ENV['SIMPLECOV_COMMAND_NAME'])
|
||||
SimpleCov.command_name(simplecov_command_name)
|
||||
SimpleCov.root(root)
|
||||
load root.join('.simplecov')
|
||||
end
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
# -*- coding: binary -*-
|
||||
ENV['RAILS_ENV'] = 'test'
|
||||
|
||||
unless Bundler.settings.without.include?(:coverage)
|
||||
require 'simplecov'
|
||||
end
|
||||
|
||||
# @note must be before loading config/environment because railtie needs to be loaded before
|
||||
# `Metasploit::Framework::Application.initialize!` is called.
|
||||
|
|
Loading…
Reference in New Issue