The mutants.out directory
A mutants.out directory is created in the original source directory. You can put the output directory elsewhere with the --output option
or using CARGO_MUTANTS_OUTPUT environment variable or via output directive in the config file.
On each run, any existing mutants.out is renamed to mutants.out.old, and any
existing mutants.out.old is deleted.
The output directory contains:
-
A
lock.json, on which an fs2 lock is held while cargo-mutants is running, to avoid two tasks trying to write to the same directory at the same time.lock.jsoncontains the start time, cargo-mutants version, username, and hostname.lock.jsonis left inmutants.outwhen the run completes, but the lock on it is released. -
A
mutants.jsonfile describing all the generated mutants. This file is completely written before testing begins. -
An
outcomes.jsonfile describing the results of all tests, summary counts of each outcome, and the cargo-mutants version. -
A
diff/directory, containing a diff file for each mutation, relative to the unmutated baseline.mutants.jsonincludes for each mutant the name of the diff file. -
A
logs/directory, with one log file for each mutation plus the baseline unmutated case. The log contains the diff of the mutation plus the output from cargo.outcomes.jsonincludes for each mutant the name of the log file. -
caught.txt,missed.txt,timeout.txt,unviable.txt, each listing mutants with the corresponding outcome. -
previously_caught.txtaccumulates a list of mutants caught in previous runs with--iterate.
The contents of the directory and the format of these files is subject to change in future versions.
These files are incrementally updated while cargo-mutants runs, so other programs can read them to follow progress.
There is generally no reason to include this directory in version control, so it is recommended that you add /mutants.out* to your .gitignore file or equivalent. This will exclude both mutants.out and mutants.out.old.