Run only ONE test with Jest
Solution 1:
Jest parallelizes test runs and it doesn't know upfront which tests it should run and which it shouldn't run. This means when you use "fit", it will only run one test in that file. But it still runs all other test files in your project.
fit
, fdescribe
and it.only
, describe.only
have the same purpose: skip other tests and run only me.
Source: https://github.com/facebook/jest/issues/698#issuecomment-177673281
Use the Jest filtering mechanism. When you run your tests like,
jest --config=jest.config.json --watch
you can filter tests by a testname
or filename
. Just follow the instructions in the terminal.
Press p
, and then type a filename.
Then you can use describe.only
and it.only
which will skip all other tests from the filtered, tested file.
Solution 2:
it.only
and describe.only
work only for the module they are in. If you are having problems to filter tests in multiple files, you can use jest -t name-of-spec
, filtering tests that match the specified name (match against the name in describe or test).
Source: Jest CLI Options
For example, I focus the test which I'm currently writing like this (with the test script in the package.json
):npm test -- -t "test foo"