@PowerMockIgnore在项目级别

时间:2017-01-12 00:40:17

标签: java maven-3 powermock

在Maven中运行时,我的powermock测试用例中出现以下错误:

java.lang.LinkageError: loader constraint violation: loader (instance of org/powermock/core/classloader/MockClassLoader) previously initiated loading for a different type with name "javax/management/MBeanServer"

解决方案是添加注释

   @PowerMockIgnore("javax.management.*")

问题是我有很多测试文件,我必须添加这个注释。

有没有办法在项目级别或maven中添加它?

由于

2 个答案:

答案 0 :(得分:3)

从PowerMock 1.7.0起,您可以使用configuration file指定要忽略的包。

powermock.global-ignore="org.myproject.*"

可以使用逗号:

指定多个包/类

powermock.global-ignore="org.myproject.*","org.3rdpatproject.SomeClass"

此配置适用于类路径中的所有测试类。您可以通过将此文件添加到类路径来创建配置:

org/powermock/extensions/configuration.properties

答案 1 :(得分:1)

我不认为这是可能的。

请记住,最后, JUnit 正在执行这些测试用例。逐一。并且JUnit对maven"项目"一无所知。周围。

JUnit只知道它要处理的测试类中的元素。

因此:这些陈述需要进入你的所有测试用例;理想情况下,只有那些真正需要它的人。

最后一句话:请不要误解我,但在我看来,你真正的问题是你似乎在你的项目中不加区别地使用PowerMock。这可能表明您的许多开发人员不知道如何编写可测试的代码......然后他们会修复"通过转向PowerMock。你有可能迟早会后悔。

编辑:学习如何编写可测试代码---启动here