A command-line interface for running ESLint rule unit tests powered by the official RuleTester API.
Running the unit tests
npm exec eslint-rule-tester <...path>
where <...path>
is one or more Glob patterns, which can be mixed of..
- JavaScript file exporting ESLint plugin, for example,
module.exports = {
rules: {
'rule-name': {
tests: { valid: [], invalid: [] }
}
}
}
- JavaScript file exporting ESLint rule, for example,
module.exports = {
tests: { valid: [], invalid: [] }
}
The command returns the status code representing the number of non-pass test results.
Optionally, the command accepts the following arguments:
Argument | Description |
---|
--bail | Stop at the first failing test case. |
--silent | Print only failing test cases to the standard output. |
Running exclusive test cases
To run fewer test cases for debugging purposes, choose one of the following approaches:
- Set
only: true
in your test case as mentioned in ESLint official documentations, for example,
module.exports = {
tests: {
valid: [
{
only: true,
code: '...'
}
],
invalid: [...]
}
}
- Wrap your test case with the global function
only
injected by this package, for example,
module.exports = {
tests: {
valid: [
only({
code: '...'
})
],
invalid: []
}
}
- Wrap
valid
and/or invalid
arrays with the global function only
injected by this package, for example,
module.exports = {
tests: {
valid: only([
{
code: '...'
}
]),
invalid: only([])
}
}
Sample command-line output
⚪ import-path-from-closest-index
🟢 react-sort-props
🔴 require-name-after-file-name
1 var something = require("./james-arthur")
filename: ./rules/require-name-after-file-name.js
options: [
[
"./rules/*.js"
]
]
Should have 1 error but had 0: [] (0 strictEqual 1)
SKIP 1
PASS 1
FAIL 1