Sha256: c325834fa954b8865cae573e308d50b98c8262ff62b55ad731313c4560012936

Contents?: true

Size: 902 Bytes

Versions: 8

Compression:

Stored size: 902 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}
      --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

8 entries across 8 versions & 1 rubygems

Version Path
devtools-0.1.18 tasks/metrics/mutant.rake
devtools-0.1.16 tasks/metrics/mutant.rake
devtools-0.1.15 tasks/metrics/mutant.rake
devtools-0.1.14 tasks/metrics/mutant.rake
devtools-0.1.13 tasks/metrics/mutant.rake
devtools-0.1.12 tasks/metrics/mutant.rake
devtools-0.1.11 tasks/metrics/mutant.rake
devtools-0.1.10 tasks/metrics/mutant.rake