rapid7/metasploit-framework

View on GitHub
.simplecov

Summary

Maintainability
Test Coverage
# 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 '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