eslint-rule-tester
v2.0.0
Published
A command-line interface for running ESLint rule unit tests
Downloads
321
Readme
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 = { // See https://eslint.org/docs/latest/extend/plugins#creating-a-plugin rules: { 'rule-name': { // See https://eslint.org/docs/latest/extend/custom-rules#rule-structure tests: { valid: [], invalid: [] } } } }
- JavaScript file exporting ESLint rule, for example,
module.exports = { // See https://eslint.org/docs/latest/extend/custom-rules#rule-structure 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/orinvalid
arrays with the global functiononly
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