Skip to content
mutastic

Report

record in io.mutastic.api

record Report(
String project,
int jdk,
List<MutantResult> results,
int tests,
List<String> flaky,
Duration coverage,
int workers,
int started,
Duration took,
List<MutantResult> audited,
Optional<ChangedLines> scope,
List<Ignore> staleIgnores,
List<FlakyTest> flakyEvidence)

A finished run: every mutant’s result, in the order they were found.

Components

jdkthe feature version the tests ran on
flakytests that failed in the coverage pass and passed when run again: left out of every mutant’s run, so their catches don’t count
coveragehow long the coverage pass took, of took
workershow many workers ran side by side
startedhow many worker JVMs started: one per worker, plus one after each kill
auditedin an audit of the arid filters, each arid mutant’s result when run anyway; the mutant itself is in results as skipped, as in any run
scopethe change the run was scoped to, when it was: only mutants on its lines ran
staleIgnoresthe ignores whose line has changed since: they no longer hold, and their mutants ran
flakyEvidencefor each of the flaky tests the run found out about, what it failed with and what it reaches that changes from run to run

Constructors

Report

Report(String project, int jdk, List<MutantResult> results, int tests, List<String> flaky, Duration coverage, int workers, int started, Duration took, List<MutantResult> audited, Optional<ChangedLines> scope, List<Ignore> staleIgnores)

A run with nothing known of why its flaky tests are flaky.

Report

Report(String project, int jdk, List<MutantResult> results, int tests, List<String> flaky, Duration coverage, int workers, int started, Duration took)

A run without an audit.

Methods

whyFlaky

Optional<FlakyTest> whyFlaky(String test)

What’s known of why the flaky test test is flaky, if anything is.

merge

Report merge(Report other)

This run’s results with other’s, a run of other tests (another module’s) over the same mutants: a mutant is caught if either caught it, missed rather than not covered if either reached it, and covered by the tests of both.

replaced

int replaced()

Workers started again after one was killed for taking too long: never fewer than none.

count

long count(Status status)

scored

long scored()

The mutants that ran or could have: all but the skipped ones.

score

OptionalDouble score()

Detected mutants as a share of the scored ones, from 0 to 100; none when nothing was scored, which is no evidence either way, not a perfect score.

coveredScore

OptionalDouble coveredScore()

Detected mutants as a share of those some test reached: how well the tests check the code they run, apart from the code they don’t. None when no test reached any; the threshold is still on score.

passes

boolean passes(int threshold)

At or above threshold, or nothing to score: with no mutants there is nothing to fail.