如何 运行 测试与 cypress 中更改的文件相关的内容

How to run tests related to changed files in cypress

我正在使用 cypress 来设置 E2E 测试。

但我遇到了一些麻烦,因为每次我实现一个新功能或重构一些代码时,我都需要 运行 我所有的测试,看看我的修改是否没有破坏我的应用程序.

在 Jest 中,我们有标志 --findRelatedTests,运行 只修改了相关的测试文件。

我想知道是否有办法在柏树中做同样的事情。

如果你在本地尝试,那么 1、如果要跳过特定的测试组或测试用例,一种方法是在上下文或it块的末尾添加.skip。例如,context.skip() 或 it.skip().

context.skip('Test group', () => {
  // This whole test group will be skipped
  it('Test case 1', () => {
    // This test case will not run because test group is skipped
  });
});
context('Test group', () => {
  it.skip('test case1', () => {
    // Test case one will be skipped
  });

  it('test case2', () => {
    // Detail for test case two
// This will execute
  });
});
  1. 运行 Specific/modified 仅测试 您可以在上下文末尾添加 .only 或它块,例如 context.only() 或 it.only().
// Only 1st test group will run
  context.only('test group1', () => {
    it('test case', () => {
      // Test case one will run
    });

    it('test case2', () => {
      // Test case two will run
    });
  });

  // The 2nd test group will not run
  context('test group2', () => {
    it('test case3', () => {
      // Test case three will be skipped
    });

    it('test cas4', () => {
      // Test case three will be skipped
    });
  });
context('test group', () => {
    it.only('test case1', () => {
      // Test case one will run
    });

    it('test case2', () => {
      // Test case two will be skipped
    });
  });
  1. 运行 使用 cypress.json 有条件地测试 运行有条件的测试是使用cypress.json文件,如果要运行特定的测试文件。

如果你只想运行测试test.spec.js文件,你可以只添加文件路径到cypress.json.

中的测试文件
{
  "testFiles": "**/test.spec.js"
}

运行多个测试文件

{
  "testFiles": ["**/test-1.spec.js", "**/test-2.spec.js"]
}

忽略测试中的特定测试 运行s

{
  "ignoreTestFiles": "**/*.ignore.js"
}

运行 使用命令行有条件地测试

npx cypress run --spec "cypress/integration/test.spec.js"

到 运行 特定文件夹中文件名以 .spec.js

结尾的所有测试
npx cypress run --spec "cypress/integration/testgroup-directory-name/*.spec.js"

如果您正在使用 CI/CD 那么这会对您有所帮助,您可以得到一个想法。 Faster test execution with cypress-grep

您是否在寻找插件 cypress-watch-and-reload

// cypress.json

{
  "cypress-watch-and-reload": {
    "watch": ["page/*", "src/*.js"]  // watch source and page-object (helper) files
  }
}

YouTube - Re-run Cypress Tests When Application Files Change