Sha256: a1764bc0104eb7aee57dc96b4d3fa95bdd0bfde809fbc1a50c1794c02a648b06

Contents?: true

Size: 952 Bytes

Versions: 7

Compression:

Stored size: 952 Bytes

Contents

namespace :metrics do
  config  = Devtools.project.mutant

  desc 'Measure mutation coverage'
  task mutant: :coverage do
    require 'mutant'

    namespace =
      if config.zombify
        Mutant.zombify
        Zombie::Mutant
      else
        Mutant
      end

    namespaces = Array(config.namespace).map { |n| "#{n}*" }

    ignore_subjects = config.ignore_subjects.flat_map do |matcher|
      %W[--ignore #{matcher}]
    end

    jobs = ENV.key?('CIRCLECI') ? %w[--jobs 4] : []

    since =
      if config.since
        %W[--since #{config.since}]
      else
        []
      end

    arguments  = %W[
      --include lib
      --require #{config.name}
      --expect-coverage #{config.expect_coverage}
      --use #{config.strategy}
    ].concat(ignore_subjects).concat(namespaces).concat(since).concat(jobs)

    unless namespace::CLI.run(arguments)
      Devtools.notify_metric_violation('Mutant task is not successful')
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
devtools-0.1.9 tasks/metrics/mutant.rake
devtools-0.1.8 tasks/metrics/mutant.rake
devtools-0.1.7 tasks/metrics/mutant.rake
devtools-0.1.6 tasks/metrics/mutant.rake
devtools-0.1.5 tasks/metrics/mutant.rake
devtools-0.1.4 tasks/metrics/mutant.rake
devtools-0.1.3 tasks/metrics/mutant.rake