Phi*_*zen 9 java junit maven-surefire-plugin junit5
当使用@Disabled* / @Enabled* 注释禁用测试时,这些测试将按预期跳过,但 Surefire 测试运行程序还会[WARNING]在受影响的类的结果行前面显示 。我的理解是,开发团队应该只看到需要进一步关注的事情的警告,因此我同意对某些测试(即由于未解决的错误而暂时禁用)发出警告可能是一件好事。
现在:我正在编写的测试套件涵盖了特定于不同操作系统环境 \xe2\x80\x93 的代码,例如,某些测试仅在 Windows 环境中运行时才有意义。因此,对此类测试发出警告是没有意义的(用@EnabledOnOs(OS.WINDOWS))发出警告是没有意义的,因为它们绝对没问题,并且预计会跳过(实际上是强制性的)\xe2\x80\x93,因此这里根本没有待办事项或问题。
我们如何控制哪些跳过的测试将导致警告(即通过@SuppressWarnings注释或某些万无一失的配置选项)?
小智 2
无法抑制特定测试的警告。
但是,您至少可以减少 Maven Surefire 插件打印的警告数量。为此,您可以使用配置属性printSummary。请参阅文档以获取更多信息。因此,如果您在您的中添加这样的属性pom.xml:
<properties>
<surefire.printSummary>false</surefire.printSummary>
</properties>
Run Code Online (Sandbox Code Playgroud)
您不会看到每个测试的摘要,而只会在构建结束时看到最终的汇总摘要。
[INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ demo ---
[INFO]
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[WARNING] Tests run: 1, Failures: 0, Errors: 0, Skipped: 1
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
作为条件的替代解决方案,我建议您使用Tags。
因此,您可以为测试类和/或方法添加“os”标签
[INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ demo ---
[INFO]
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[WARNING] Tests run: 1, Failures: 0, Errors: 0, Skipped: 1
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
然后,当执行 Maven 命令来运行测试时,您可以指定可以包含或排除哪些标签。例如:
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
class TaggingDemo {
@Test
@Tag("windows")
void testingForWidows() {
}
@Test
@Tag("linux")
void testingForLinux() {
}
}
Run Code Online (Sandbox Code Playgroud)
因此,您不会看到任何从构建中“排除”的测试的警告。
[INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ demo ---
[INFO]
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
798 次 |
| 最近记录: |