关于Karate框架JUnit5测试配置示例文档中'sample'与'tags'引用的技术问询
我来拆解这两个在Karate JUnit5测试配置里常用的参数:
1. sample是什么?
sample是Karate为JUnit5测试运行器扩展的专属参数,核心作用是控制测试用例的重复执行次数。比如你在JUnit5测试类里这么写:
@Karate.Test Karate testSample() { return Karate.run("my-test").sample(3); }
这段代码会让my-test.feature里的测试用例重复跑3次。这个参数很适合做稳定性验证,比如想确认某个接口在多次调用下都能正常返回结果时,就可以用它批量重复执行测试。
它属于Karate的特性,是Karate针对JUnit5集成场景专门设计的功能,JUnit5原生并没有这个参数。
2. tags是什么?
tags是Karate核心标签过滤机制在JUnit5集成中的暴露,用来精准筛选要执行的测试用例。Karate本身支持在.feature文件里给测试场景打标签(比如@smoke、@regression),而在JUnit5配置里,你可以通过tags参数指定只运行符合特定标签规则的测试。
举个例子:
@Karate.Test Karate testTags() { return Karate.run("my-test").tags("@smoke", "~@ignore"); }
这里的规则是:运行带有@smoke标签的测试,同时排除带有@ignore标签的测试(~符号代表排除)。
这个tags本质上就是Karate的核心功能,所以完全属于Karate的特性——虽然JUnit5也有自己的标签体系,但这里的tags直接对接Karate的.feature文件标签,和JUnit5原生标签不是一回事。
内容的提问来源于stack exchange,提问作者Olivier
相关产品推荐
相关产品推荐

