Несоответствие типов 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)
.....

И я получаю следующее исключение: Несоответствие типов: невозможно преобразовать из класса в класс ‹? расширяет расширение›

Я действительно чертовски новичок и понятия не имею, как решить эту проблему. Так что, может быть, кто-нибудь может мне помочь или сказать, где я могу найти необходимую информацию.

Спасибо вам всем.


person sunxca    schedule 18.01.2021    source источник


Ответы (1)


К сожалению, вы не можете использовать Runner JUnit 4 в качестве расширений JUnit Jupiter (часть JUnit 5). Это совершенно новый API и несовместим.

Хотя модель программирования JUnit Jupiter и модель расширений не будут изначально поддерживать функции JUnit 4, такие как правила и исполнители, не ожидается, что специалистам по сопровождению исходного кода потребуется обновить все свои существующие тесты, тестовые расширения и тестовую инфраструктуру пользовательской сборки для миграции. к Юнит Юпитер. Из официальной документации JUnit.

Итак, для каждого @RunWith вам нужно использовать/включить расширение JUnit Jupiter. В вашем конкретном случае с Arquilian я не совсем уверен, есть ли уже официальное расширение для этого.

Следующие ссылки могут помочь:

person rieckpil    schedule 18.01.2021