mirror of
https://github.com/rapid7/metasploit-framework
synced 2024-10-29 18:07:27 +01:00
3c2c808457
Rubymine's code coverage tools separate collection from reporting so that multiple runs can have their data merged. To separate, collecting from reporting, SimpleCov.start is only run when not using Rubymine (as indicated by a lack of the RM_INFO environment variable). This way, `rake spec` will collect coverage info and generate the report as before, but Rubymine will only collect coverage when using 'Run ... with coverage enabled' button and will only generate a report when using 'Generate Coverage Report' as is the intended behavior in Rubymine.
59 lines
1.5 KiB
Ruby
59 lines
1.5 KiB
Ruby
# RM_INFO is set when using Rubymine. In Rubymine, starting SimpleCov is
|
|
# controlled by running with coverage, so don't explicitly start coverage (and
|
|
# therefore generate a report) when in Rubymine. This _will_ generate a report
|
|
# whenever `rake spec` is run.
|
|
unless ENV['RM_INFO']
|
|
SimpleCov.start
|
|
end
|
|
|
|
SimpleCov.configure do
|
|
# ignore this file
|
|
add_filter '.simplecov'
|
|
|
|
#
|
|
# Changed Files in Git Group
|
|
# @see http://fredwu.me/post/35625566267/simplecov-test-coverage-for-changed-files-only
|
|
#
|
|
|
|
untracked = `git ls-files --exclude-standard --others`
|
|
unstaged = `git diff --name-only`
|
|
staged = `git diff --name-only --cached`
|
|
all = untracked + unstaged + staged
|
|
changed_filenames = all.split("\n")
|
|
|
|
add_group 'Changed' do |source_file|
|
|
changed_filenames.detect { |changed_filename|
|
|
source_file.filename.end_with?(changed_filename)
|
|
}
|
|
end
|
|
|
|
#
|
|
# Framework (msf) related groups
|
|
#
|
|
|
|
add_group 'Metasploit Framework', 'lib/msf'
|
|
add_group 'Metasploit Framework (Base)', 'lib/msf/base'
|
|
add_group 'Metasploit Framework (Core)', 'lib/msf/core'
|
|
|
|
#
|
|
# Other library groups
|
|
#
|
|
|
|
add_group 'Fastlib', 'lib/fastlib'
|
|
add_group 'Metasm', 'lib/metasm'
|
|
add_group 'PacketFu', 'lib/packetfu'
|
|
add_group 'Rex', 'lib/rex'
|
|
add_group 'RKelly', 'lib/rkelly'
|
|
add_group 'Ruby Mysql', 'lib/rbmysql'
|
|
add_group 'Ruby Postgres', 'lib/postgres'
|
|
add_group 'SNMP', 'lib/snmp'
|
|
add_group 'Zip', 'lib/zip'
|
|
|
|
#
|
|
# Specs are reported on to ensure that all examples are being run and all
|
|
# lets, befores, afters, etc are being used.
|
|
#
|
|
|
|
add_group 'Specs', 'spec'
|
|
end
|