如何在NX工作区中按标签运行Cypress回归/冒烟测试
解决NX中按Cypress标签筛选测试的问题
问题根源
你使用的--tags=@regression是NX的项目筛选参数,作用是过滤NX工作区中的项目,而非传递给@cypress/grep用于筛选测试用例标签,所以NX会执行整个e2e项目的所有测试,不会触发标签筛选。
解决方案
方案1:命令行直接传递Cypress Grep参数
利用NX的参数传递规则,在命令末尾添加--,将Cypress grep的参数传递给底层的Cypress命令:
# 精准匹配标签 nx run e2e:e2e --env grepTags=@regression # 或用grep参数匹配标签(也支持匹配测试名称) nx run e2e:e2e --env grep=@regression
方案2:在project.json中配置专属运行配置
修改project.json的e2e target,添加一个regression配置项,预先设置grep参数:
{ "targets": { "e2e": { "executor": "@nx/cypress:cypress", "options": { "cypressConfig": "e2e/cypress.config.ts", "devServerTarget": "", "testingType": "e2e" }, "configurations": { "production": { "devServerTarget": "" }, "regression": { "env": { "grepTags": "@regression" } } } } } }
之后只需运行简化命令:
# 完整命令 nx run e2e:e2e --configuration=regression # 缩写形式 nx run e2e:e2e -c regression
额外说明
- 你的
e2e.ts中registerCypressGrep()的注册是正确的,无需修改。 - 若需要组合标签(比如包含@regression且排除@smoke),可传递
grepTags=@regression -@smoke:nx run e2e:e2e --env grepTags=@regression -@smoke
内容的提问来源于stack exchange,提问作者Thanveer Ahmed
相关产品推荐
相关产品推荐

