我想切换为只运行一个测试,这样就不必等待其他测试才能看到一个测试的结果。

目前,我注释掉了其他测试,但这真的很烦人。

有没有办法切换到只运行一个测试在Cypress?


当前回答

你可以用这个

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

or

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

这对我很管用。

非常感谢

其他回答

最著名的解决方案已经存在,只需要在控制台中添加一个简单的参数。 https://github.com/cypress-io/cypress/tree/develop/npm/grep

简单地运行: npx cypress run——env grep="TestName"——spec "filename"

Cypress .only()函数仅用于开发。

只运行一个文件

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

或者使用glob模式:

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

注意:你需要用单引号来包装glob模式,以避免shell扩展!

在一个文件中只运行一个测试

您只能按照Cypress文档中的描述使用.

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

it('not this one', () => {
})

同样,您也可以对描述块和上下文块进行同样的操作

编辑:

还有一个很好的VSCode扩展,可以用键盘快捷键更容易地添加/删除.only。它被称为Test Utils (install with ext install chrisbreeding . Test - Utils)。它适用于js, coffee和typescript:

有多种方法可以实现这一点。

你可以添加。only到它或描述见@bkucera答案 你可以从终端做,在这里的文件解释 NPX cypress run——record——spec "cypress/integration/my-spec.js" NPM run cypress -- --record——spec "cypress/integration/my-spec.js"

执行此类运行的最佳方法是使用cypress提供的.only关键字。

要在一个描述函数中运行来自多个描述函数的所有测试用例,请在所需的描述中添加.only。

describe("1st describe", () => {
  it("Should check xx", async function(){
  });
  it("Should check yy", async function(){
  });
});   
describe.only("2nd describe", () => {
  it("Should check xx", async function(){
  });
  it("Should check yy", async function(){
  });
}); 
describe("3rd describe", () => {
  it("Should check xx", async function(){
  });
  it("Should check yy", async function(){
  });
}); 

所以这里只有第二个描述会运行。

类似地,如果你想在1描述中运行一些测试用例,在你想运行的所有测试用例前面添加.only。

describe("describe statement", () => {
  it("Should check xx", async function(){
  });
  it.only("Should check yy", async function(){
  });
  it.only("Should check zz", async function(){
  });
});

这里,yy和zz的it会运行

这类似于你可能熟悉的因果报应和茉莉花中的契合。

你可以用它跳过柏树的测试。跳过或退出

通过终端运行特定文件:

 npx cypress run --record --spec "cypress/integration/my-spec.js"

 npm run cypress -- --record --spec "cypress/integration/my-spec.js"