Mutation testing for Node.js and JavaScript.
Mutode generates mutants (small changes of code) and runs your tests. If the tests fail, it means the mutant was detected and killed; if your tests pass, it means the mutant survived and your tests can be improved.
Watch the demo video and Check the slides of the Node Summit 2018 talk
"It's like a test for your tests!" - @mappum
"Higher order testing: automated testing for your unit tests" - @albertomiranda
Read the tool demo paper "Mutode: generic JavaScript and Node.js mutation testing tool". In Proceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2018)
Read the thesis proposal here
Requires Node 8+
Globally:
npm i -g mutode
Locally as a dev dependency:
npm i -D mutode
Globally:
mutode [options] [paths]
Locally with npx
:
npx mutode [options] [paths]
Locally with a package.json script:
{
...
"scripts": {
"test: "my test command",
"mutode": "mutode [options] [paths]"
}
...
}
Options:
Usage: mutode [options] [paths]
Options:
--concurrency, -c Concurrency of mutant runners [number] [default: 4]
--mutators, -m Specific mutators to load (space separated)
[array] [choices: "booleanLiterals", "conditionalsBoundary", "increments",
"invertNegatives", "math", "negateConditionals", "numericLiterals",
"removeArrayElements", "removeConditionals", "removeFuncCallArgs",
"removeFuncParams", "removeFunctions", "removeLines", "removeObjProps",
"removeSwitchCases", "stringLiterals"]
-h, --help Show help [boolean]
-v, --version Show version number [boolean]
MIT Copyright © Diego Rodríguez Baquero