javascriptautomated-testscypresse2e-testing

How can I run just one test with Cypress?


I want to toggle running only one test, so that I don't have to wait for my other tests to finish to see the result of the one test I'm interested in.

Currently, I comment out my other tests but this is really annoying.

Is there a way to toggle only running one test in Cypress?


Solution

  • to run only one file

    cypress run --spec path/to/file.spec.js
    

    or using glob patterns:

    cypress run --spec 'path/to/files/*.spec.js'
    

    Note: you need to wrap your glob patterns in single quotes to avoid shell expansion!

    to run only one test in a file

    You can use a .only as described in the Cypress docs

    it.only('only run this one', () => {
      // similarly use it.skip(...) to skip a test
    })
    
    it('not this one', () => {
    })
    

    Also, you can do the same with describe and context blocks

    edit:

    there's also a nice VSCode extension to make adding/removing .only's easier with keyboard shortcuts. It's called Test Utils (install with ext install chrisbreiding.test-utils). It works with js, coffee, and typescript:

    enter image description here