我正在使用 Cucumber 来帮助定义我正在处理的一些测试,但是应用程序正在变得越来越大,我需要更好的结构。
project
| feature_files
| | app1.js
| | app2.js
| | app3.js
| | ...
| step_definitions
| ...
所有应用程序都以相同的方式开始测试,有一个起始页,您可以在其中输入变量并单击链接。问题是 Cucumber 提示多个步骤定义匹配
,因为这些开始步骤是在每个功能文件中定义的。
经过一些研究,这似乎是可能的,但我找不到关于如何实现它的 JavaScript 解决方案。 This solution is in Java和 this SO answer gives a good idea of how to organize my folder structure .
如何实现可在多个功能文件中重用的通用功能文件?
最佳答案
只需将常用步骤移至单独的步骤定义文件中,并删除任何重复的步骤实现(步骤定义)。 Cucumber 将从 step_definitions
文件夹中的所有文件中获取步骤定义,因此哪个文件保存实现并不重要。然而,最佳实践是在单独的步骤定义文件中维护通用功能。
假设您有以下 3 个步骤。
Given User navigates to "Application1" url
Given User navigates to "Application2" url
Given User navigates to "Application3" url
现在,在开发步骤定义时,您不必为所有步骤编写 3 个不同的实现,而是只需开发一个步骤定义,并将方差作为参数,如下所示。
你的步骤定义应该是这样的
Given(/^User navigates to "([^"]*)" url$/), async function(app){
// your logic goes here
});
现在在您的步骤定义中实现处理不同应用程序的逻辑。
关于javascript - 如何在 Cucumber 中创建和使用常见功能文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57956800/