Skip to content

Releases: jakubsob/muttest

v0.3.0

Choose a tag to compare

@jakubsob jakubsob released this 21 Jul 12:33
  • ✨ New JSONMutationReporter writes a report conforming to the mutation-testing-elements schema, a cross-language standard shared by StrykerJS/.NET/Scala — so muttest output can be fed to any schema-compatible tooling.
  • ✨ New report() renders a self-contained, source-annotated HTML report (overall score, per-file breakdown, per-line mutant diffs, status filtering, keyboard navigation) from a JSONMutationReporter file.
  • ✨ New MultiReporter fans reporter events out to several reporters at once, e.g. a live ProgressMutationReporter alongside a JSONMutationReporter.
  • ❗️ A mutant that makes tests error (rather than fail an expectation) is now scored as killed, matching PIT/Stryker/mutmut. Previously it was counted as survived.
  • ❗️ Mutants with no test coverage (no matching test file under FileTestStrategy) are now reported as a separate no coverage category and excluded from the score, so untested code no longer looks like escaped mutants.
  • PackageCopyStrategy gained a symlink argument. When TRUE, only the mutated file's top-level directory is copied and everything else is symlinked to the original, avoiding a full project copy per mutant (helpful for packages with large inst//data/). Defaults to FALSE; unsafe if the test suite writes into the package's own directories.
  • 🐛 FileTestStrategy now matches test files by exact name instead of an unanchored regex, so a source file like mod.R no longer runs test-model.R and filenames with regex metacharacters are handled correctly.
  • 🐛 Added missing digest and tools to Imports.

v0.3.0-r.c.2

v0.3.0-r.c.2 Pre-release
Pre-release

Choose a tag to compare

@jakubsob jakubsob released this 21 Jul 12:11
  • Fixed CRAN check with invalid URL

v0.3.0-r.c.1

v0.3.0-r.c.1 Pre-release
Pre-release

Choose a tag to compare

@jakubsob jakubsob released this 21 Jul 10:02
  • ✨ New JSONMutationReporter writes a report conforming to the mutation-testing-elements schema, a cross-language standard shared by StrykerJS/.NET/Scala — so muttest output can be fed to any schema-compatible tooling.
  • ✨ New report() renders a self-contained, source-annotated HTML report (overall score, per-file breakdown, per-line mutant diffs, status filtering, keyboard navigation) from a JSONMutationReporter file.
  • ✨ New MultiReporter fans reporter events out to several reporters at once, e.g. a live ProgressMutationReporter alongside a JSONMutationReporter.
  • ❗️ A mutant that makes tests error (rather than fail an expectation) is now scored as killed, matching PIT/Stryker/mutmut. Previously it was counted as survived.
  • ❗️ Mutants with no test coverage (no matching test file under FileTestStrategy) are now reported as a separate no coverage category and excluded from the score, so untested code no longer looks like escaped mutants.
  • PackageCopyStrategy gained a symlink argument. When TRUE, only the mutated file's top-level directory is copied and everything else is symlinked to the original, avoiding a full project copy per mutant (helpful for packages with large inst//data/). Defaults to FALSE; unsafe if the test suite writes into the package's own directories.
  • 🐛 FileTestStrategy now matches test files by exact name instead of an unanchored regex, so a source file like mod.R no longer runs test-model.R and filenames with regex metacharacters are handled correctly.
  • 🐛 Added missing digest and tools to Imports.

v0.2.1

Choose a tag to compare

@jakubsob jakubsob released this 26 Jun 08:33

muttest 0.2.1

  • Update treesitter queries to work with treesitter >= 1.3.0.

v0.2.0

Choose a tag to compare

@jakubsob jakubsob released this 14 May 14:40

muttest 0.2.0

  • ❗️ Renamed plan() to muttest_plan().
  • ✨ Add new mutators:
    • boolean_literal(), na_literal() — literal replacement mutators.
    • negate_condition(), remove_condition_negation() — condition mutators.
    • numeric_increment(), numeric_decrement(), index_increment(), index_decrement() — increment/decrement mutators.
    • string_empty(), string_fill() — string mutators.
    • call_name() — call name mutator.
    • remove_negation() — unary negation mutator.
    • replace_return_value() — return value mutator.
    • delete_statement() — removes assignments and standalone calls one at a time to catch untested side effects and dead assignments.
  • ✨ Add preset collections for all major mutator groups:
    • boolean_literals() — flips TRUE/FALSE and T/F.
    • na_literals() — swaps NA, NULL, and typed NA variants.
    • numeric_literals() — increments and decrements numeric constants.
    • index_mutations() — shifts subscript indices up and down by one.
    • string_literals() — empties non-empty strings and fills empty ones.
    • condition_mutations() — negates conditions and removes existing negations.
    • arithmetic_operators() — mutates arithmetic operators (+, -, *, /, ^, %%, %/%).
    • comparison_operators() — mutates comparison operators (<, >, <=, >=, ==, !=).
    • logical_operators() — mutates logical operators (&, |, &&, ||).
  • ✨ Mutators are now parametrized and accept configuration arguments.
  • ProgressMutationReporter now reports survived mutants.
  • ✨ Expose Mutator base class for building custom mutators.
  • muttest() supports parallel execution of mutants.
  • muttest() supports per-mutant timeouts to avoid hanging test runs.
  • 🥅 Improved error handling when test execution fails.

v0.1.0

Choose a tag to compare

@jakubsob jakubsob released this 02 Jun 14:02
  • ✨ Create a testing plan with plan.
  • ✨ Run mutation testing with muttest.
  • ✨ Support mutating operators with operator.
  • ✨ Control copying project to temporary directory with CopyStrategy:
    • PackageCopyStrategy implemented for copying package files.
  • ✨ Control test execution for each mutant with TestStrategy:
    • FullTestStrategy for running all tests for each mutant.
    • FileTestStrategy for running only test files matching mutant files.
  • ✨ See test results with MutationReporter.
    • ProgressMutationReporter for printing progress to the console.