Module: Mutineer

Defined in:
lib/mutineer.rb,
lib/mutineer/cli.rb,
lib/mutineer/config.rb,
lib/mutineer/parser.rb,
lib/mutineer/result.rb,
lib/mutineer/runner.rb,
lib/mutineer/pairing.rb,
lib/mutineer/project.rb,
lib/mutineer/subject.rb,
lib/mutineer/version.rb,
lib/mutineer/baseline.rb,
lib/mutineer/mutation.rb,
lib/mutineer/progress.rb,
lib/mutineer/reporter.rb,
lib/mutineer/file_swap.rb,
lib/mutineer/isolation.rb,
lib/mutineer/mutant_id.rb,
lib/mutineer/worker_pool.rb,
lib/mutineer/child_stdout.rb,
lib/mutineer/coverage_map.rb,
lib/mutineer/project_path.rb,
lib/mutineer/test_runners.rb,
lib/mutineer/changed_lines.rb,
lib/mutineer/daemon_client.rb,
lib/mutineer/daemon_server.rb,
lib/mutineer/mutators/base.rb,
lib/mutineer/daemon_backend.rb,
lib/mutineer/rails_worker_db.rb,
lib/mutineer/external_backend.rb,
lib/mutineer/mutator_registry.rb,
lib/mutineer/test_runners/rspec.rb,
lib/mutineer/mutators/arithmetic.rb,
lib/mutineer/mutators/chain_link.rb,
lib/mutineer/mutators/comparison.rb,
lib/mutineer/mutators/return_nil.rb,
lib/mutineer/minitest_integration.rb,
lib/mutineer/test_runners/minitest.rb,
lib/mutineer/mutators/array_literal.rb,
lib/mutineer/mutators/range_literal.rb,
lib/mutineer/mutators/regex_literal.rb,
lib/mutineer/mutators/string_literal.rb,
lib/mutineer/mutators/boolean_literal.rb,
lib/mutineer/mutators/operand_removal.rb,
lib/mutineer/mutators/safe_navigation.rb,
lib/mutineer/mutators/literal_mutation.rb,
lib/mutineer/mutators/negation_removal.rb,
lib/mutineer/mutators/boolean_connector.rb,
lib/mutineer/mutators/collection_method.rb,
lib/mutineer/mutators/condition_forcing.rb,
lib/mutineer/mutators/statement_removal.rb,
lib/mutineer/mutators/condition_negation.rb,
lib/mutineer/mutators/operator_assignment.rb,
lib/mutineer/minitest_integration/stop_at_first_failure.rb

Overview

No require_relative "runner" on purpose: runner.rb requires this file, and the reverse edge makes Ruby warn "circular require considered harmful" on every -w load. Runner is loaded first on every real path; requiring this file alone leaves it undefined. Rationale and the real fix: #75.

Defined Under Namespace

Modules: ChangedLines, ChildStdout, DaemonBackend, DaemonServer, ExternalBackend, FileSwap, MutantId, Mutators, Pairing, ProjectPath, RailsWorkerDb, TestRunners Classes: AggregateResult, Baseline, CLI, ConcurrentRunError, Config, ConfigError, ConfigOption, CoverageMap, DaemonBootError, DaemonClient, FrameworkUnavailable, Isolation, MinitestIntegration, Mutation, MutatorRegistry, ParseError, Parser, Progress, Project, Reporter, Result, Runner, SmokeCheckError, Subject, WorkerPool

Constant Summary collapse

STRATEGY_ALIASES =

Deprecated internal strategy names, mapped to their canonical equivalents.

{ "7a" => "reload", "7b" => "redefine" }.freeze
CONFIG_OPTIONS =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

The option schema. Config.parse is the only place that turns a raw value (a CLI string or a YAML scalar) into a typed one, so a value is checked once, at the boundary, whichever layer wrote it. Row order fixes the order of KNOWN_KEYS in warnings.

[
  ConfigOption.new(field: :operators, type: :string_list, yaml_key: "operators", flag: "--operators"),
  ConfigOption.new(field: :jobs, type: :positive_int, yaml_key: "jobs", flag: "--jobs"),
  ConfigOption.new(field: :threshold, type: :percent, yaml_key: "threshold", flag: "--threshold"),
  ConfigOption.new(field: :only, type: :string, yaml_key: "only", flag: "--only"),
  ConfigOption.new(field: :require_paths, type: :string_list, yaml_key: "require"),
  ConfigOption.new(field: :boot, type: :string, yaml_key: "boot", flag: "--boot"),
  ConfigOption.new(field: :rails, type: :bool, yaml_key: "rails", flag: "--rails"),
  ConfigOption.new(field: :since, type: :since, yaml_key: "since", flag: "--since"),
  ConfigOption.new(field: :framework, type: :enum, yaml_key: "framework", flag: "--framework",
                   values: %w[minitest rspec]),
  ConfigOption.new(field: :verbose, type: :bool, yaml_key: "verbose", flag: "--verbose"),
  ConfigOption.new(field: :ignore, type: :string_list, yaml_key: "ignore"),
  ConfigOption.new(field: :baseline, type: :string, yaml_key: "baseline", flag: "--baseline"),
  ConfigOption.new(field: :fail_fast, type: :bool, yaml_key: "fail_fast", flag: "--fail-fast"),
  ConfigOption.new(field: :test_command, type: :string, yaml_key: "test_command", flag: "--test-command"),
  ConfigOption.new(field: :daemon, type: :bool, yaml_key: "daemon", flag: "--daemon"),
  ConfigOption.new(field: :format, type: :enum, flag: "--format", values: %w[human json html]),
  ConfigOption.new(field: :strategy, type: :enum, flag: "--strategy", values: %w[reload redefine],
                   aliases: STRATEGY_ALIASES),
  ConfigOption.new(field: :output, type: :string, flag: "--output"),
  ConfigOption.new(field: :baseline_epsilon, type: :nonneg_float, flag: "--baseline-epsilon"),
  ConfigOption.new(field: :dry_run, type: :bool, flag: "--dry-run")
].freeze
VERSION =

Current Mutineer release version.

"1.4.0"