当前位置: 首页 > 知识库问答 >
问题:

使用JUnit5、Java11不排除使用enabledoNos/disabledoNos标记进行测试

秦信瑞
2023-03-14

示例:

@DisabledOnOs(OS.LINUX)
@EnableOnOs(OS.WINDOWS)
@DisabledForJreRange

https://www.baeldung.com/junit-5-条件测试执行

唯一仍然有效的排除是@Ignore标志。

import org.junit.jupiter.api.condition.EnabledOnOs;
import org.junit.jupiter.api.condition.OS;
...
@EnabledOnOs(OS.WINDOWS)
@Test
public void onlyRunOnWindowsTest() {
    log.info("Test run on Windows env. only");
    // more test code ...
}

为了使测试正常工作,我还需要配置什么测试吗?

我还有这个:

从gradle.build中的dependencis中,我有://https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api测试编译组:“org.junit.jupiter”,名称:“junit-jupiter-api”,版本:“5.7.0”

在项目外部库(intelliJ)中,我有:

> Gradle:junit:junit:4.1

我试图从project中删除这个JUnit4.1(如果有冲突原因的话),但是这个又直接从Gradle刷新中弹出。我猜junit5用的就是这个罐子。

> Gradle:org.junit.jupiter:junit-jupiter-api:5.7.0

共有1个答案

拓拔骁
2023-03-14

是的,这肯定是一个错误的JUnit4和JUnit5迁移。下面的步骤帮助我实现了这个功能。

如果您正在处理一个巨大的项目,那么这种自动更正是最受欢迎的(将所有标记和断言自动转换为junit5语法):

https://github.com/junit-pioneer/convert-junit4-to-junit5

那么您可能还需要修复本文中描述的一些项目问题:

在Android Studio中运行参数化单元测试时,未发现给定包含错误的测试

祝你好运!

 类似资料:
  • 我发现Junit5从5.3版本开始就支持并行性,但我找不到任何关于如何使用csv源代码运行并行测试的参考。你有什么建议吗?

  • Gradle4.6增加了对JUnit5的支持。 只要我没有用于例如集成测试的另一个sourceset,这对我是有效的:我不知道如何在我的集成测试中启用。 我所能做的是让任务与新的JUnit5支持一起工作,但我的任务使用JUnit5控制台并从命令行运行测试。最后,我在gradle中放弃对JUnit5的支持,并回滚到使用JUnit5控制台进行两个测试。 除了之外,如何在其他任务上启用Gradle4.6

  • 类似于这样: 对Docker来说这可能吗?

  • 我试图刮一个页面与美丽的汤,有

  • 右键点击Run可以很好地工作。我用 Intellijidea 2017.1.5, Gradle, JunitPlatformVersion='1.0.0-M6', JunitJupiterVersion='5.0.0-M6'

  • 我遇到了无法使用Maven运行JUnit5测试的问题。在IDE中运行它们工作正常,但使用“mvn测试”会产生以下输出: 这是我的测试课程: pom: 我做了一些研究,我认为这可能与混合JUnit4和JUnit5特性有关,这导致maven surefire插件无法运行测试。然而,我找不到那些剩余的JUnit4特性可能在哪里。我将感谢任何帮助。