首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试不排除使用使用Junit 5,Java 11 EnabledOnOs/DisabledOnOs标签

测试不排除使用使用Junit 5,Java 11 EnabledOnOs/DisabledOnOs标签
EN

Stack Overflow用户
提问于 2021-01-14 18:04:05
回答 1查看 350关注 0票数 0

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

示例:

代码语言:javascript
复制
@DisabledOnOs(OS.LINUX)
@EnableOnOs(OS.WINDOWS)
@DisabledForJreRange

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

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

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

示例测试:

代码语言:javascript
复制
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中的依赖项我有: // https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api testCompile组:‘org.juit.jupiter’,名称:'junit-jupiter-api',版本:'5.7.0‘

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

代码语言:javascript
复制
> Gradle:junit:junit:4.1

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

代码语言:javascript
复制
> Gradle:org.junit.jupiter:junit-jupiter-api:5.7.0
EN

回答 1

Stack Overflow用户

发布于 2021-01-14 21:43:13

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

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

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

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

No tests found for given includes Error, when running Parameterized Unit test in Android Studio

祝好运!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65716910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档