0

所以这可能是一个非常愚蠢的问题,但我刚开始将项目从 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)
.....

我得到以下异常:“类型不匹配:无法从 Class 转换为 Class <? extends Extension>

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

谢谢你们。

4

2 回答 2

2

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

尽管 JUnit Jupiter 编程模型和扩展模型本身不支持 JUnit 4 功能,例如 Rules 和 Runners,但预计源代码维护人员不需要更新所有现有测试、测试扩展和自定义构建测试基础架构来迁移到 JUnit 木星。来自官方 JUnit 文档

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

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

于 2021-01-18T16:25:10.570 回答
0

Arquillian 现在支持 junit 5。

代替

@RunWith(Arquallian.class) 

@ExtendWith(ArquillianExtension.class)

同时添加新的依赖

<dependency>
        <groupId>org.jboss.arquillian.junit5</groupId>
        <artifactId>arquillian-junit5-container</artifactId>
        <version>1.7.0.Alpha10</version>
    </dependency>
于 2021-11-02T22:17:21.683 回答