@PowerMockIgnore 在项目级别
@PowerMockIgnore at project level
我的 powermock 测试用例出现以下错误,而 运行 在 Maven 中:
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 "project" 周围一无所知。
JUnit 只知道它即将处理的测试class中的元素。
因此:这些语句需要进入你所有的测试用例;理想情况下仅在那些真正需要它的人中使用。
最后一句话:请不要误会我的意思,但在我看来,您真正的问题是您似乎在项目中不加选择地使用 PowerMock。这可能表明您的许多开发人员不知道如何编写 可测试 代码……然后他们 "fix" 通过求助于 PowerMock。有一定的几率你迟早会后悔的。
编辑:学习如何编写可测试代码 --- 开始 here!
从 PowerMock 1.7.0
开始,您可以使用 configuration file.
指定要忽略的包
powermock.global-ignore=org.myproject.*
可以用逗号指定多个packages/classes:
powermock.global-ignore=org.myproject.*,org.3rdpatproject.SomeClass
此配置应用于类路径中的所有测试类。您可以通过将此文件添加到类路径来创建配置:
org/powermock/extensions/configuration.properties
我的 powermock 测试用例出现以下错误,而 运行 在 Maven 中:
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 "project" 周围一无所知。
JUnit 只知道它即将处理的测试class中的元素。
因此:这些语句需要进入你所有的测试用例;理想情况下仅在那些真正需要它的人中使用。
最后一句话:请不要误会我的意思,但在我看来,您真正的问题是您似乎在项目中不加选择地使用 PowerMock。这可能表明您的许多开发人员不知道如何编写 可测试 代码……然后他们 "fix" 通过求助于 PowerMock。有一定的几率你迟早会后悔的。
编辑:学习如何编写可测试代码 --- 开始 here!
从 PowerMock 1.7.0
开始,您可以使用 configuration file.
powermock.global-ignore=org.myproject.*
可以用逗号指定多个packages/classes:
powermock.global-ignore=org.myproject.*,org.3rdpatproject.SomeClass
此配置应用于类路径中的所有测试类。您可以通过将此文件添加到类路径来创建配置:
org/powermock/extensions/configuration.properties