Home > Net >  How to run a single test suite in Jest?
How to run a single test suite in Jest?

Time:06-12

I have many test suites. I wanna to run a singe one and skip all the others, and I would like to do this on the code level.

I know I can do this using .only() and .skip() in a test file, but that supports only the tests / describes defined in that file.

Is there a way to do this globally? Like is there something like .only() which - when called on the top level describe - runs only that test suite and all others are skipped? Or: when called on a single test ( it().only() ), then only that test runs and nothing else?

I see nothing like this in the API, but maybe Jest can be configured to work this way?

Is this possible with Jest or is this something I can only do via CLI?

CodePudding user response:

If I understand correctly: You want to run just one test suite/file.

You can do this from the command line with jest path/to/filename.test.js.

Within a file, you can use test.only(name, fn, timeout) to only run that test. This won't stop Jest from moving on to the next testing file though.

Full Jest CLI docs

As far as I am aware, you cannot do this from within the test file itself.
The closest I can think of would be to set the `testmatch' in Jest's config to a pattern that only matches the file(s) you want run.

package.json

{
  "name": "my-project",
  "jest": {
    "testmatch": "**/my.test.js"
  }
}
  • Related