layout | title | redirect_from | amethyst | |||
---|---|---|---|---|---|---|
page |
Command-line interface |
|
|
How to use the QUnit CLI (command-line interface), after installing it from npm.
Usage: qunit [options] [files]
Files should be a space-separated list of files, directories, or glob expressions.
Defaults to 'test/**/*.js'.
Options:
-V, --version output the version number
-f, --filter <filter> run only matching module or test names
-m, --module <name> run only the specified module
-r, --reporter [name] specify the reporter to use
--require <module> specify a module or script to include before running any tests
--seed [value] specify a seed to re-order your tests
-w, --watch watch files for changes and re-run the test suite
-h, --help display help for command
Only run tests that match the given filter. The filter is matched against the module and test name, and may either be substring match (case insensitive), or a regular expression.
Examples: --filter foo
, --filter !foo
, --filter "/foo/"
, --filter "!/foo/"
Check QUnit.config.filter
for more information.
Only run tests that belong to the specified module. The name is matched case-insensitively, but must otherwise be complete.
Examples: --module foo
, --module "Foo"
Check QUnit.config.module
for more information.
By default, the TAP reporter is used.
Run qunit --reporter <name>
to use a different reporter, where <name>
can be the name of a built-in reporter, or an Node module that implements the js-reporters spec. The reporter will be loaded and initialised automatically.
Built-in reporters:
tap
: TAP compliant reporter.console
: Log the JSON object for each reporter event fromQUnit.on
. Use this to explore or debug the reporter interface.
These modules or scripts will be required before any tests begin running.
This can be used to install Node.js require hooks, such as for TypeScript (ts-node/register), Babel (@babel/register), or CoffeeScript (coffeescript/register).
It can also be used for your own setup scripts to bootstrap the environment, or tweak QUnit.config
. For example:
qunit --require ./test/setup.js
// test/setup.js
QUnit.config.noglobals = true;
QUnit.config.notrycatch = true;
global.MyApp = require( './index' );
See QUnit.config for all available configuration options.
This option assigns QUnit.config.seed
for you.
The QUnit CLI uses Node.js. You can pass Node.js CLI options via the NODE_OPTIONS
environment variable. For example, to use --enable-source-maps
or --inspect
, invoke QUnit as follows:
NODE_OPTIONS='--enable-source-maps' qunit test/
Generate code coverage reports with nyc:
{
"scripts": {
"test": "nyc qunit"
},
"devDependencies": {
"nyc": "*",
"qunit": "*"
}
}
See /test/integration/nyc/ in the QUnit repo for a minimal example.
For a more elaborate example showcasing a unified test coverage report for tests in both Node.js and a headless browser, see Krinkle/example-node-and-browser-qunit.