@PowerMockIgnore在项目级别
在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中添加它?
谢谢
我不认为这是可能的。
请记住,最终, JUnit正在执行这些测试用例。 逐一。 JUnit对maven“项目”一无所知。
JUnit只知道它要处理的测试类中的元素。
因此:这些陈述需要进入你的所有测试用例; 理想情况下,只有那些真正需要它的人。
最后一句话:请不要误会我的意思,但在我看来,你真正的问题是你似乎在你的项目中不加区别地使用PowerMock。 这可能表明你的许多开发人员都不知道如何编写可测试代码……然后他们通过转向PowerMock“修复”了这个问题。 你有可能迟早会后悔的。
编辑:学习如何编写可测试代码—从这里开始!
从PowerMock 1.7.0开始,您可以使用配置文件指定要忽略的包。
powermock.global-ignore="org.myproject.*"
可以使用逗号指定多个包/类:
powermock.global-ignore="org.myproject.*","org.3rdpatproject.SomeClass"
此配置适用于类路径中的所有测试类。 您可以通过将此文件添加到类路径来创建配置:
org/powermock/extensions/configuration.properties