标签和过滤
可以通过 @Tag 注释对测试类和方法进行标记。这些标记稍后可用于筛选测试发现和执行。
语法规则
-
标签不能为空或
null。 -
trim() 的标记不能包含空格。
-
trim() 的标签不能包含ISO控制字符。
-
trim()的标记不能包含以下任何保留字符:
-
,: 逗号 -
(: 左括号 -
): 右括号 -
&: 与 -
|: 竖线 -
!: 非
实例
- TagDemo.java
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
@Tag("fast")
@Tag("model")
public class TagDemo {
@Test
@Tag("taxes")
void testingTaxCalculation() {
}
}
Tag 表达式
标签表达式是具有运算符! &和|的布尔表达式。此外,( 和 ) 可以用于调整操作符的优先级。
操作符号(按优先级的降序排列)
| 操作符 | 意思 | 结合性 |
|---|---|---|
| ! | not | 右边 |
| & | and | 左边 |
| |
or | 左边 |
如果您正在跨多个维度标记您的测试,标记表达式将帮助您选择要执行哪些测试。 根据测试类型(例如,micro, integration,端到端)和特性(例如foo, bar, baz)标记以下标记表达式是有用的。
- 示例
| TAG 表达式 | 选中 |
foo |
all tests for foo |
bar | baz |
all tests for bar plus all tests for baz |
bar & baz |
all tests for the interaction between bar and baz |
foo & !end-to-end |
all tests for foo, but not the end-to-end tests |
(micro | integration) & (foo | baz) |
all micro or integration tests for foo or baz |
