Jar*_*red 5 java junit unit-testing intellij-idea maven
我正在使用 JUnit 4/Mockito/PowerMock 作为遗留应用程序的单元测试套件。PowerMock 依赖于 javassist:org.javassist:javassist:jar:3.20.0-GA:test
我们还依赖于旧版本的 Hibernate,它引入了旧版本的 javassist: javassist:javassist:jar:3.12.0.GA:compile
旧版本的 javassist 混淆了单元测试,导致了一个神秘的异常: java.io.IOException: invalid constant type: 18
当直接通过 Maven 运行测试时,我可以通过从 POM 中运行的单元测试中排除旧的 jar 来解决问题。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<classpathDependencyExcludes>
<!-- our version of Hibernate pulls in a javassist dependency that is incompatible with Java8
this can be removed once we upgrade Hibernate -->
<classpathDependencyExclude>javassist:javassist</classpathDependencyExclude>
</classpathDependencyExcludes>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
然而,当直接在 IntelliJ 中运行测试时,错误仍然发生。无法从 IDE 轻松调试测试是一个主要问题,所以我希望有什么方法可以让 IntelliJ 也排除旧的依赖项,直到我们最终可以升级我们的 Hibernate 依赖项。
| 归档时间: |
|
| 查看次数: |
1100 次 |
| 最近记录: |