How do I test a single file using Jest?
Solution 1:
Since at least 2019:
npm test -- SomeTestFileToRun
In 2015:
In order to run a specific test, you'll need to use the jest
command. npm test
will not work. To access jest
directly on the command line, install it via npm i -g jest-cli
or yarn global add jest-cli
.
Then simply run your specific test with jest bar.spec.js
.
Note: You don't have to enter the full path to your test file. The argument is interpreted as a regular expression. Any part of the full path that uniquely identifies a file suffices.
Solution 2:
All you have to do is chant the magic incantation:
npm test -- SomeTestFileToRun
The stand-alone --
is *nix magic for marking the end of options, meaning (for NPM) that everything after that is passed to the command being run, in this case jest
. As an aside, you can display Jest usage notes by saying
npm test -- --help
Anyhow, chanting
npm test -- Foo
runs the tests in the named file (FooBar.js
). You should note, though, that:
-
Jest treats the name as case-sensitive, so if you're using a case-insensitive, but case-preserving file system (like Windows NTFS), you might encounter what appears to be oddness going on.
-
Jest appears to treat the specification as a prefix.
So the above incantation will
- Run
FooBar.js
,Foo.js
andFooZilla.js
- But not run
foo.js
Solution 3:
To run an individual test:
npm test -t ValidationUtil # `ValidationUtil` is my module `ValidationUtil.spec.js`
-t
- after it, put a regular expression containing the test name.