在this question from JUnit 3 to JUnit 4的精神下,是否有任何正则表达式列表可以有效地从junit 4 API迁移到junit 5 API,而不管代码大小?
5rgfhyps1#
眼下明面上并不伟大,但在进步:
@Rule
ExpectedException
@Test(expected = …)
assertThrows
我建议采取以下步骤:1.将JUnit 5工件添加到测试依赖项中。
除了ExpectedException之外,我不知道有任何工具可以帮助自动迁移Parameterized测试或规则。以下是一个“易出错”配置示例:
Parameterized
<build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> <configuration> <compilerId>javac-with-errorprone</compilerId> <showWarnings>true</showWarnings> <forceJavacCompilerUse>true</forceJavacCompilerUse> <source>${java.compiler.source}</source> <target>${java.compiler.target}</target> <compilerArgs> <arg>-XepPatchChecks:TryFailRefactoring,ExpectedExceptionRefactoring,TestExceptionRefactoring</arg> <arg>-XepPatchLocation:${project.basedir}</arg> </compilerArgs> </configuration> <dependencies> <dependency> <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-compiler-javac-errorprone</artifactId> <version>2.8.3</version> </dependency> <dependency> <groupId>com.google.errorprone</groupId> <artifactId>error_prone_core</artifactId> <version>2.3.2</version> </dependency> </dependencies> </plugin> </plugins> </build>
wribegjk2#
使用openrewrite,您可以执行migrate automagically。刚跑:
mvn org.openrewrite.maven:rewrite-maven-plugin:4.36.0:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-testing-frameworks:1.28.0 -Drewrite.activeRecipes=org.openrewrite.java.testing.junit5.JUnit5BestPractices
2条答案
按热度按时间5rgfhyps1#
眼下明面上并不伟大,但在进步:
@Rule
(例如,ExpectedException
),则不会执行任何操作(从v2018.2开始)。ExpectedException
s、@Test(expected = …)
)迁移到assertThrows
,从而完美地增强IntelliJ。我建议采取以下步骤:
1.将JUnit 5工件添加到测试依赖项中。
assertThrows
,并启用以下检查(Maven配置示例如下):除了
ExpectedException
之外,我不知道有任何工具可以帮助自动迁移Parameterized
测试或规则。以下是一个“易出错”配置示例:
wribegjk2#
使用openrewrite,您可以执行migrate automagically。
刚跑: