我试图弄清楚如何在与功能文件相同的目录中停止我的步骤文件。我使用了 cypress-cucumber 页面中的基本设置教程。
我的问题是这个。
我有一个功能文件
集成/功能/ test.feature
为了让测试运行,我必须将我的步骤文件放在 integration/feautres/ test /test.js 中
我想要做的是将我的步骤文件存储在诸如 integration/feautres/test.js 之类的功能旁边
是否有可能做到这一点?
我试图弄清楚如何在与功能文件相同的目录中停止我的步骤文件。我使用了 cypress-cucumber 页面中的基本设置教程。
我的问题是这个。
我有一个功能文件
集成/功能/ test.feature
为了让测试运行,我必须将我的步骤文件放在 integration/feautres/ test /test.js 中
我想要做的是将我的步骤文件存储在诸如 integration/feautres/test.js 之类的功能旁边
是否有可能做到这一点?
不幸的是,这实际上是不可能的。使用 cypress-cucumber-preprocessor,您有两个选项来存储您的步骤定义:
nonGlobalStepDefinitions
为true
,它将在您现在拥有的设置中查找特定于功能的步骤(即/featureName/featureName.js
)。使用此选项,所有全局步骤都将存储在cypress/integration/common
.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
./..