赛普拉斯:仅运行一项测试

时间:2019-03-07 23:14:51

标签: e2e-testing cypress

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

当前,我注释掉了其他测试,但这确实很烦人。

是否有一种方法只能切换在Cypress中运行一个测试?

9 个答案:

答案 0 :(得分:3)

是的,您可以按照the Cypress docs

中的说明使用.only
it.only('only run this one', () => {
})

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

此外,您可以对describecontext块进行相同操作

编辑:

还有一个不错的VSCode扩展名,可以通过键盘快捷键轻松添加/删除.only。称为测试实用程序:

enter image description here

答案 1 :(得分:2)

您可以通过将x放在testrunner方法调用({{1},describe等)之前,使不需要的测试套件和特殊情况静音。

所以它看起来像:

it

答案 2 :(得分:1)

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

  1. 您可以将.only添加到itdescribe中,请参见@bkucera答案
  2. 您可以按照the doc here中的说明在终端上进行操作
     npx cypress run --record --spec "cypress/integration/my-spec.js"
    
     npm run cypress -- --record --spec "cypress/integration/my-spec.js"
    

答案 3 :(得分:1)

我发现有一种方法可以跳过不需要运行的测试(在当前测试中),那就是使用:this.skip();

it('test page', function () {
    // skip this test for now
    this.skip();
    cy.visit('http://example.com/')
    cy.contains('test page').click()
    cy.url()
        .should('include', '/test-page/')
})

答案 4 :(得分:0)

您可以像这样运行测试。

cypress运行--spec ** / file.js

答案 5 :(得分:0)

我的测试文件具有这样的结构 path/something.test.jsx 并且命令 npx cypress run --spec path/something.test.jsx 在终端中给出以下异常:

Can't run because no spec files were found.
We searched for any files matching this glob pattern:
...

出人意料的是,下面的工作并完全针对一个文件运行测试(前提是您安装了 jest):

jest path/something.test.jsx

答案 6 :(得分:0)

  1. 一个非常简单的解决方案是在您的测试前加上数字,因为测试框架默认情况下通常会按字母/数字顺序运行测试 - 所以如果我必须检查一个规范文件 - 我会将内容复制到一个文件中0-[file-name].spec 并重新运行测试命令。测试完成后 - 您终止测试运行 - 因为您将获得所需的结果。此答案针对的是您的测试框架被抽象化的项目,并且作为开发人员,您没有测试框架的所有可用选项。不是最好的答案,但它有效并且直观且非常容易做到。我发现这是一种避免添加一堆条件 skips() 或 only() 调用的方法,这些调用不会将其投入生产,必须将其删除,并且您可以轻松地将文件模式添加到 .gitignore 文件中,因此这些本地文件不会被签入。

答案 7 :(得分:-1)

要通过终端运行特定文件:

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

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

答案 8 :(得分:-2)

你可以使用这个

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

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

它对我有用。

非常感谢