2

我试图弄清楚如何在与功能文件相同的目录中停止我的步骤文件。我使用了 cypress-cucumber 页面中的基本设置教程。

我的问题是这个。

我有一个功能文件

集成/功能/ test.feature

为了让测试运行,我必须将我的步骤文件放在 integration/feautres/ test /test.js 中

我想要做的是将我的步骤文件存储在诸如 integration/feautres/test.js 之类的功能旁边

是否有可能做到这一点?

4

2 回答 2

3

不幸的是,这实际上是不可能的。使用 cypress-cucumber-preprocessor,您有两个选项来存储您的步骤定义:

  1. 在您的配置中,设置nonGlobalStepDefinitionstrue,它将在您现在拥有的设置中查找特定于功能的步骤(即/featureName/featureName.js)。使用此选项,所有全局步骤都将存储在cypress/integration/common.
  2. 在您的配置中,设置nonGlobalStepDefinitionsfalse,这将使您的步骤保持全局,并且它们将位于cypress/support/step_definitions.

我想可以使用选项 1,然后将您的步骤定义和功能文件存储在cypress/integration/common目录中。但是,如果这样可行,那么随着测试和步骤定义的扩展,这会让您头疼(想想拥有数百或数千个全局可访问的步骤定义并意外创建重复项......它很快就会变得混乱)。

就个人而言,我强烈建议不要这样做。

于 2021-05-21T17:05:31.427 回答
0

是否还有机会为多个功能文件提供一些共享的步骤定义,这不应该是完全全局的?

假设

cypress/integration
./common                   --> global for all features
./A/first.feature
./A/first/step-def1.ts     --> valid only for first.feature
./A/second.feature
./A/second/step-def2.ts    --> valid only for second.feature
./A/common/step-defA.ts    ==> valid for first.feature and second.feature 
./B/third.feature
./B/third/step-def3.ts     --> valid only for third.feature
./..
于 2021-06-29T13:45:39.857 回答