我是否可以排除从IntelliJ运行的JUnit测试中包含的依赖项?

时间:2016-02-10 18:25:25

标签: java maven unit-testing intellij-idea junit

我使用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>

但是,在IntelliJ中直接运行测试时,仍会出现错误。这是一个无法从IDE轻松调试测试的主要问题,所以我很高兴有一些方法可以让IntelliJ排除旧的依赖,直到我们最终可以升级我们的Hibernate依赖

0 个答案:

没有答案