不排除使用Junit 5、Java 11的EnabledOnOs/DisabledOnOs标记进行测试



我第一次玩Junit 5(条件跳过(和jdk-11.01来忽略一些测试。我无法使用@Disable/@Enable来禁用测试用例。请分享如何让它发挥作用的想法?

示例:

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

https://www.baeldung.com/junit-5-conditional-test-execution

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

我已经测试运行了一个测试套件;GitHub操作;或者使用Junit 5插件从IntelliJ本地执行,并且当测试标记为@EnableOnOs(OS.WINDOWS(时,即使满足条件(例如在Linux机器上运行测试(,测试仍然会执行!

示例测试:

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 ...
}

我还需要用什么来配置测试吗?

我还有这个:

来自grade.build中的dependences我有://https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-apitestCompile组:"org.junit.jupiter",名称:"junitjupiter-api",版本:"5.7.0">

在项目外部图书馆(intelliJ(我有:

> Gradle:junit:junit:4.1

我试图从项目中删除这个junit 4.1(如果有冲突的原因(,但它再次直接从Gradle刷新中弹出。我猜junit5用的是这个罐子。

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

是的,这绝对是Junit 4对Junit 5的迁移出错了。以下步骤帮助我实现了这一点。

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

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

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

在Android Studio 中运行参数化单元测试时,未找到给定的测试,包括错误

祝你好运!

最新更新