微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

类型不匹配 junit5 @ExtendWith

如何解决类型不匹配 junit5 @ExtendWith

所以这可能是一个非常愚蠢的问题,但我刚刚开始将一个项目从 junit 4 迁移到 5,发现 @RunWith() 不再存在。它被@ExtendWith 取代。所以我试着这样做:

import org.jboss.arquillian.junit.Arquillian;
import org.junit.Test;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.displayName;
import org.junit.jupiter.api.extension.ExtendWith;

import de.msggillardon.services.journal.JournalService;
import de.msggillardon.system.UserContext;
import de.msggillardon.util.ITDeployment;

@ExtendWith(Arquillian.class)
.....

我得到以下异常:“类型不匹配:无法从类转换为类扩展扩展>

我是一个真正的初学者,不知道如何解决问题。所以也许有人可以帮助我或告诉我在哪里可以找到必要的信息。

谢谢大家。

解决方法

遗憾的是,您不能使用 JUnit 4 的 Runner 作为 JUnit Jupiter(JUnit 5 的一部分)扩展。这是一个全新的 API,不兼容。

虽然 JUnit Jupiter 编程模型和扩展模型将 本身不支持 JUnit 4 特性,例如 Rules 和 Runners,它是 预计源代码维护者不需要更新所有 他们现有的测试、测试扩展和自定义构建测试 迁移到 JUnit Jupiter 的基础设施。从official JUnit documentation

因此,对于每个 @RunWith,您都需要使用/包含 JUnit Jupiter 扩展。在您使用 Arquilian 的特殊情况下,我不太确定是否已经有一个官方扩展。

以下链接可能会有所帮助:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。