Я конвертирую где-то около 1000 тестов JUnit с помощью
@Test(expected=SomeException.class)
public void testIt() throws SomeException {
doSomeStuff();
}
к JUnit Jupiter API
@Test
void testIt() {
Assertions.assertThrows(SomeException.class, () -> {
doSomeStuff();
});
}
Я знаю, что в Intellij есть магия «Surround With», живые шаблоны или что-то, что может сделать этот процесс немного более автоматизированным?
Я всегда мог бы написать сценарий или что-то в этом роде, но я полагаю, что, возможно, есть способ использовать встроенную функциональность Intellij, чтобы упростить эту задачу.
Есть идеи?




Одним из способов переноса нескольких тестов Junit4 на Junit5 является OpenRewrite.
Он будет иметь несколько предопределенных рецептов для общих задач, таких как Миграция Junit4 на Junit5.
Если у вас есть проект maven без spring, вы можете добавить следующее в свой pom.xml.
<build>
<plugins>
<plugin>
<groupId>org.openrewrite.maven</groupId>
<artifactId>rewrite-maven-plugin</artifactId>
<version>4.44.0</version>
<configuration>
<activeRecipes>
<recipe>org.openrewrite.java.testing.junit5.JUnit5BestPractices</recipe>
</activeRecipes>
</configuration>
<dependencies>
<dependency>
<groupId>org.openrewrite.recipe</groupId>
<artifactId>rewrite-testing-frameworks</artifactId>
<version>1.36.0</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
Краткое объяснение:
<activeRecipes>
<recipe>org.openrewrite.java.testing.junit5.JUnit5BestPractices</recipe>
</activeRecipes>
Эта часть активирует рецепт перезаписи junit, который находится в зависимости org.openrewrite.recipe:rewrite-testing-frameworks.
Если вы используете Spring или Spring-Boot, вам понадобится активный рецепт org.openrewrite.java.spring.boot2.SpringBoot2JUnit4to5Migration и следующая зависимость.
<dependency>
<groupId>org.openrewrite.recipe</groupId>
<artifactId>rewrite-spring</artifactId>
<version>4.35.0</version>
</dependency>
Если вы используете Gradle, вам следует ознакомиться с официальной документацией.
Через mvn rewrite:dryRun вы можете увидеть результаты в .patch файле.
Через mvn rewrite:run миграция будет выполнена. Если у вас есть система контроля версий, вы всегда можете запустить ее без пробного прогона, потому что вы можете увидеть различия в инструменте сравнения вашей системы контроля версий.