赛普拉斯测试数据生成脚本不作为测试套件的一部分

Cypress test data generation scripts not as part of the test suites

我为我们的网站编写了几个 Cypress end-2-end 测试。这些测试 运行 针对暂存环境。由于我们为我们的开发团队提供了几个这样的临时环境,我想确保这些测试在所有临时环境中都是稳定的。

对于某些测试,我需要特定的测试数据,因此我编写了一个 cypress 测试,创建了该测试数据。通常这个测试数据生成测试不会在我们的CI系统上执行。该测试位于 integration 目录中的一个单独文件中,因此 cypress 能够找到并执行它。它只在每个暂存环境中执行一次。测试数据将保留在那里,不必一次又一次地生成。

打开 cypress GUI (cypress open) 时,我想让 cypress 忽略这个测试数据生成测试,这样我就可以简单地 运行 一次所有套件。但是,当我将此测试数据生成测试添加到 ignoredTestFiles 的集合时,我根本无法 运行 测试数据生成测试。

你知道如何让 cypress GUI 一方面忽略我的测试数据生成测试,另一方面在我明确希望它执行时保持它可由 cypress 执行吗?

您可以使测试生成数据测试依赖于环境变量,并且仅在您明确希望它执行时才设置该变量。类似于:

if (Cypress.env('GENERATE_TEST_DATA')) {
  // Generate your test data here
  // You could even put this if around the entire it block
  // so the test doesn't execute at all when the environment variable isn't set
}

然后当你想要生成测试数据时,设置环境变量如下:

CYPRESS_GENERATE_TEST_DATA=true npx cypress run

另见the documentation on Cypress.env()