java - 即使没有注释,Junit 5也会在maven构建中执行测试

标签 java maven junit5

在 maven 上准备 release (release:prepare) 时,我评论了一些我不想执行的测试,但它们无论如何都会执行,甚至完全执行从方法中删除 @Test 注释。

注意:请考虑在 Maven 发布期间忽略“跳过测试”选项

构建是在 Eclipse 下执行的,以下环境:
- Apache Maven 3.5.4 外部运行时(不是嵌入在 Eclipse 中的)
- Java JDK 1.8.0_151
- maven-编译器-插件 3.0
- maven-release-plugin 2.5.3
-junit-jupiter-api 5.5.2
-junit-jupiter-engine 5.5.2

通常为了跳过测试,我只评论注释:

    //@Test
    public void testIwantToSkip() {
        assertTrue(true);
    }

目前,我发现跳过测试的唯一方法是注释整个方法,但我希望仅注释注释即可跳过它,就像在 Junit 4 上发生的那样。

更新
我也尝试过使用@Disable注释,不幸的是没有结果。示例:

@Test
@Disabled
public void testAuditMapper() {
    ....
}

可能的解决方案
经过多次测试并感谢 Kayaman 提示,我发现在 Maven 构建下注释完全被忽略,只有以“test”开头的方法才会被执行,其他的都会被执行无论注释如何,完全被忽略。例如:

@Test
public void someThing() {
    // will NOT be executed....
}

@Disabled
public void testSomeThing() {
    // will be executed....
}

最终解决方案
在我的pom的构建部分中,未指定surefire插件,因此生成的pom使用的是该插件的2.12.4版本。通过将其添加到构建部分:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>3.0.0-M3</version>
</plugin>

一切都按预期进行。感谢@asa 的提示。

最佳答案

尝试使用@Ignore注释。

@Test
@Ignore("optional comment explaning the reason")
public void testIwantToSkip() {
    assertTrue(true);
}

关于java - 即使没有注释,Junit 5也会在maven构建中执行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58197153/

相关文章:

java - 安装JDK前需要先卸载Java运行环境吗?

java - groovy 动态脚本执行问题 : neither GroovyShell, 和 GroovyClassLoader 都不想在传入的类加载器的上下文中工作

java - 创建安卓问答游戏,无法进行下一个任务。正确回答后

java - 如何修复无法在maven springmvc元素的maven构建中加载css文件

java - JPA 与同一实体的两个单向@OneToMany 关系导致重复条目

java - JUnit 4.12 : testing util classes

java - Junit 测试填充数组并计算无法填充的项目的方法

java - Lucene 索引文件损坏

junit5 - Eclipse 中的 "Add JUnit library"没有 "Junit 5"选项

java - Surefire 不排除标有@Tag 的 JUnit 5 测试