Unit Tests
Most parts of ESLint have unit tests associated with them. Unit tests are written using Mocha and are required when making contributions to ESLint. You'll find all of the unit tests in the tests
directory.
When you first get the source code, you need to run npm install
once initially to set ESLint for development. Once you've done that, you can run the tests via:
npm test
This automatically starts Mocha and runs all tests in the tests
directory. You need only add yours and it will automatically be picked up when running tests.
Running Individual Tests
If you want to quickly run just one test file, you can do so by running Mocha directly and passing in the filename. For example:
npm run test:cli tests/lib/rules/no-undef.js
If you want to run just one or a subset of RuleTester
test cases, add only: true
to each test case or wrap the test case in RuleTester.only(...)
to add it automatically:
ruleTester.run("my-rule", myRule, {
valid: [
RuleTester.only("const valid = 42;"),
// Other valid cases
],
invalid: [
{
code: "const invalid = 42;",
only: true,
},
// Other invalid cases
]
})
Running individual tests is useful when you're working on a specific bug and iterating on the solution. You should be sure to run npm test
before submitting a pull request. npm test
uses Mocha's --forbid-only
option to prevent only
tests from passing full test runs.
More Control on Unit Testing
npm run test:cli
is an alias of the Mocha cli in ./node_modules/.bin/mocha
. Options are available to be provided to help to better control the test to run.
The default timeout for tests in npm test
is 10000ms. You may change the timeout by providing ESLINT_MOCHA_TIMEOUT
environment variable, for example:
ESLINT_MOCHA_TIMEOUT=20000 npm test