如何在Java+IntelliJ中用Maven构建脚本运行带标签的Cucumber .feature文件
Java+Cucumber+Maven 按标签批量执行测试方案
方式一:用Maven Profiles配置(官方推荐,无额外依赖)
直接在项目的pom.xml中添加Profiles,每个Profile对应一个标签的测试命令,省去每次手动输入长命令的麻烦:
<profiles> <!-- 登录相关测试 --> <profile> <id>login</id> <properties> <cucumber.options>src/test/resources/features --tags @login</cucumber.options> </properties> </profile> <!-- 回归测试 --> <profile> <id>regression</id> <properties> <cucumber.options>src/test/resources/features --tags @regression</cucumber.options> </properties> </profile> <!-- 可按需添加更多标签对应的Profile --> </profiles>
执行时只需指定Profile ID:
- 运行登录测试:
mvn clean test -P login - 运行回归测试:
mvn clean test -P regression
方式二:用package.json配置scripts(和JS示例逻辑一致,需Node环境)
如果你的项目有Node环境,可以在根目录创建package.json,把长命令封装成简短的脚本名,和JS项目的使用逻辑完全一致:
{ "scripts": { "test:login": "mvn clean test -Dcucumber.options=\"src/test/resources/features --tags @login\"", "test:regression": "mvn clean test -Dcucumber.options=\"src/test/resources/features --tags @regression\"" } }
执行方式:
- 运行登录测试:
npm run test:login - 运行回归测试:
npm run test:regression
方式三:自定义Shell脚本(纯Java环境适用)
如果没有Node环境,可在项目根目录创建test-scripts.sh脚本:
#!/bin/bash # 登录测试执行逻辑 test_login() { mvn clean test -Dcucumber.options="src/test/resources/features --tags @login" } # 回归测试执行逻辑 test_regression() { mvn clean test -Dcucumber.options="src/test/resources/features --tags @regression" } # 根据传入参数执行对应测试 case $1 in login) test_login ;; regression) test_regression ;; *) echo "请指定测试类型:login 或 regression" ;; esac
给脚本添加执行权限:chmod +x test-scripts.sh
执行时:
- 运行登录测试:
./test-scripts.sh login - 运行回归测试:
./test-scripts.sh regression
内容的提问来源于stack exchange,提问作者dfpaezo
相关产品推荐
相关产品推荐

