如何通过Maven命令行或其他方式在Karate执行时排除指定文件夹?
在Karate项目中排除特定文件夹下的Feature文件运行
方法1:通过Maven命令行动态指定排除规则
Karate支持通过karate.options参数灵活过滤运行范围,你可以用通配符先指定扫描根目录,再排除目标文件夹。比如要排除feature/ignore-me和feature/skip-this两个文件夹,执行以下命令:
mvn test -Dkarate.options="--paths classpath:feature/ --exclude classpath:feature/ignore-me/**,classpath:feature/skip-this/**"
--paths classpath:feature/:指定要扫描的根feature目录--exclude:后面紧跟需要排除的路径,多个路径用逗号分隔,**表示匹配该文件夹下所有层级的文件和子目录- 如果不需要额外的标签过滤,直接用上述路径过滤即可
方法2:在pom.xml中配置固定排除规则
如果不想每次执行命令都手动输入排除参数,可以在maven-surefire-plugin里配置默认规则,这样直接运行mvn test就会自动排除指定文件夹:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.0.0</version> <configuration> <systemPropertyVariables> <karate.options>--paths classpath:feature/ --exclude classpath:feature/ignore-me/**,classpath:feature/skip-this/**</karate.options> </systemPropertyVariables> </configuration> </plugin>
临时需要取消排除时,只需在命令行传入空的karate.options覆盖配置:
mvn test -Dkarate.options=
方法3:利用标签机制间接排除(备选方案)
如果能给目标文件夹内的所有feature文件统一添加标签(比如@exclude),也可以通过标签过滤来排除这些用例:
mvn test -Dkarate.options="--tags ~@exclude"
这种方式适合需要频繁切换是否排除的场景,但需要提前给要排除的feature文件加上对应标签。
内容的提问来源于stack exchange,提问作者Ashish Zope
相关产品推荐
相关产品推荐

