Cypress-cucumber - 如何将步骤存储在与功能相同的目录中

Cypress-cucumber - How to store steps in same directory as features

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

我的问题是这样的。

我在

中有一个功能文件

integration/feautres/test.feature

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

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

可以这样做吗?

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

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

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

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

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

假设

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
./..