Angular项目配置Cypress+Cucumber运行feature时找不到step definitions路径报错
问题原因
你遇到的报错是因为Cypress核心配置与Cucumber预处理器的路径配置不一致,且路径前缀匹配错误:
cypress.json中指定的集成测试目录为相对于配置文件的./src/integrationpackage.json中Cucumber预处理器的步骤定义路径多了一层e2e前缀,写为./e2e/src/integration,导致预处理器无法找到对应的步骤定义文件。
解决方案
按如下步骤调整即可:
- 对齐路径配置,修改
package.json中的cypress-cucumber-preprocessor配置项,将step_definitions路径与cypress.json的配置保持一致:
"cypress-cucumber-preprocessor": { "step_definitions": "./src/integration", "nonGlobalStepDefinitions": true }
如果你的
cypress.json文件本身存放在项目根目录的e2e文件夹下,也可以选择修改cypress.json中的所有路径,加上e2e前缀,保证两边路径指向同一目录即可。
确认目录结构符合非全局步骤定义规则:当
nonGlobalStepDefinitions设置为true时,步骤定义文件需要放在与feature文件同名的子目录下。例如你的测试用例是firstOne.feature,则对应的步骤定义js/ts文件需要放在src/integration/firstOne/目录中。重启Cypress服务后重新运行测试即可。
内容的提问来源于stack exchange,提问作者LSoft
相关产品推荐
相关产品推荐

