问题标签 [powermockrunner]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
powermock - Jacoco 离线仪器在 Java 11 中无法用于 PowerMock 测试
我无法使用 Jacoco maven 插件获得 Java 11 中用于 Powermock 测试的代码覆盖率。我的版本详细信息如下:
我还在所有子项目的类路径中添加了 jacoco 运行时代理:
这些是我的插件详细信息(请注意,这些设置在 Java 8 中工作得非常好):
结果:
如您所见,在离线检测的情况下不会生成 jacoco.exec 文件。
请注意,当我不使用离线检测(即使用 prepare-agent 目标)时,我能够生成 jacoco.exec 文件,但它忽略了 PowerMock 测试。
根据这个问题: https ://github.com/jacoco/jacoco/issues/663
版本 0.8.3 中提供了对 Java 11 的支持,但是我不确定是否在导致任何问题的脱机工具中进行了任何更改。
请告知我是否还需要其他任何东西。
junit - JunitParams 和 PowerMockRunner 空指针异常
我无法弄清楚我的测试中的错误在哪里。我PowerMockRunner
用来模拟一些静态方法并向JunitParams
测试用例添加参数。
当我运行测试时,我收到以下错误:
android - 空安全静态方法中空输入的 java.lang.NullPointerException
除上述方法外,所有测试方法均有效并通过。我正在java.lang.NullPointerException
为这个。StringUtils.isEmpty()
上面也提到了的实现。StringUtils
类是用 Java 编写的,而测试用例文件是用 Kotlin 编写的。
log4j - 模拟静态方法时,突变测试覆盖失败
我正在尝试获取单元测试的突变覆盖率,但从以下位置得到奇怪的异常pitest
:
这是测试:
待测类:
单身人士:
看起来静态记录器字段在PowerMock
尝试实例化它时会导致问题,但我不知道为什么。如果有人可以帮助我找到此问题背后的原因,我将不胜感激。
使用的库:
spring - 在 Eclipse 上工作的 PowerMockRunner 测试在 STS 上因 java.lang.reflect.InvocationTargetException 而失败
我正在运行一个带有一些 JUnit4 测试的项目,这些测试在 Eclipse 上使用 PowerMockRunner 没有问题,所有测试都正常。但是在 Spring Tool Suite(通过 Eclipse)上运行相同的测试,使用 PowerMockRunner 的那些测试因以下跟踪导致的初始化错误而失败:
org.objenesis.ObjenesisException:在 org.objenesis.instantiator.sun.SunReflectionFactoryInstantiator.(SunReflectionFactoryInstantiator.java:38) 的 org.objenesis.instantiator.sun.SunReflectionFactoryHelper.newConstructorForSerialization(SunReflectionFactoryHelper.java:55) 处的 java.lang.reflect.InvocationTargetException在 org.objenesis.strategy.StdInstantiatorStrategy.newInstantiatorOf(StdInstantiatorStrategy.java:58) 在 org.objenesis.ObjenesisBase.getInstantiatorOf(ObjenesisBase.java:91) 在 org.powermock.reflect.internal.WhiteboxImpl.newInstance(WhiteboxImpl.java:222 ) 在 org.powermock.reflect.Whitebox.newInstance(Whitebox.java:139) 在 org.powermock.tests.utils.impl.AbstractTestSuiteChunkerImpl.registerProxyframework(AbstractTestSuiteChunkerImpl.java:158) 在 org.powermock.tests.utils.impl。 AbstractTestSuiteChunkerImpl。chunkClass(AbstractTestSuiteChunkerImpl.java:181) at org.powermock.tests.utils.impl.AbstractTestSuiteChunkerImpl.(AbstractTestSuiteChunkerImpl.java:96) at org.powermock.tests.utils.impl.AbstractTestSuiteChunkerImpl.(AbstractTestSuiteChunkerImpl.java:89) at org .powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.(JUnit4TestSuiteChunkerImpl.java:49) 在 org.powermock.modules.junit4.common.internal.impl.AbstractCommonPowerMockRunner.(AbstractCommonPowerMockRunner.java:32) 在 org.powermock .modules.junit4.PowerMockRunner.(PowerMockRunner.java:34) 在 java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java :64) 在 java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl。newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500) 在 java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)在 org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104) 在 org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86) 在 org.junit.runners.model.RunnerBuilder.safeRunnerForClass (RunnerBuilder.java:59) 在 org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26) 在 org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) 在 org.junit。 internal.requests.ClassRequest.getRunner(ClassRequest.java:33) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createUnfilteredTest(JUnit4TestLoader.java:90) 在 org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:49) 在 org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:76) 在 org .eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:526) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:770) 在 org.eclipse.jdt .internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:464) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210) 原因:java.lang.reflect.InvocationTargetException在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) 在 java.base/jdk.internal.reflect。DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.base/java.lang.reflect.Method.invoke(Method.java:564) 在 org.objenesis.instantiator.sun.SunReflectionFactoryHelper.newConstructorForSerialization(SunReflectionFactoryHelper.java:45) ... 30 更多原因:java.lang.IllegalAccessError:由 org.powermock.core.classloader.MockClassLoader @37883b97 加载的类 jdk.internal.reflect.ConstructorAccessorImpl 无法访问 jdk/internal/reflect 超类 jdk.internal.reflect.MagicAccessorImpl在 java.base/java.lang.ClassLoader.defineClass1(Native Method) 在 java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016) 在 org.powermock.core.classloader.MockClassLoader.loadUnmockedClass(MockClassLoader. java:238) 在 org.powermock 的 org.powermock.core.classloader.MockClassLoader.loadModifiedClass(MockClassLoader.java:182)。core.classloader.DeferSupportingClassLoader.loadClass(DeferSupportingClassLoader.java:70) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) at java.base/java.lang.ClassLoader.defineClass1(Native Method) at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016) at org.powermock.core.classloader.MockClassLoader.loadUnmockedClass(MockClassLoader.java:238) at org.powermock.core.classloader.MockClassLoader.loadModifiedClass( MockClassLoader.java:182) 在 org.powermock.core.classloader.DeferSupportingClassLoader.loadClass(DeferSupportingClassLoader.java:70) 在 java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) 在 java.base/java .lang.ClassLoader.defineClass1(Native Method) at java.base/java.lang.System$2.defineClass(System.java:2189) at java.base/jdk.internal.reflect.ClassDefiner.defineClass(ClassDefiner.java:65) 在 java.base/jdk.internal.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:400) 在 java.base/jdk.internal.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:394) 在 java.base /java.security.AccessController.doPrivileged(AccessController.java:312) 在 java.base/jdk.internal.reflect.MethodAccessorGenerator.generate(MethodAccessorGenerator.java:393) 在 java.base/jdk.internal.reflect.MethodAccessorGenerator.generateSerializationConstructor (MethodAccessorGenerator.java:112) 在 java.base/jdk.internal.reflect.ReflectionFactory.generateConstructor(ReflectionFactory.java:466) 在 java.base/jdk.internal.reflect.ReflectionFactory.newConstructorForSerialization(ReflectionFactory.java:379) 在jdk.unsupported/sun.reflect.ReflectionFactory.newConstructorForSerialization(ReflectionFactory.java:98) ... 还有 35 个internal.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:400) at java.base/jdk.internal.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:394) at java.base/java.security.AccessController.doPrivileged( AccessController.java:312) 在 java.base/jdk.internal.reflect.MethodAccessorGenerator.generate(MethodAccessorGenerator.java:393) 在 java.base/jdk.internal.reflect.MethodAccessorGenerator.generateSerializationConstructor(MethodAccessorGenerator.java:112) 在 java .base/jdk.internal.reflect.ReflectionFactory.generateConstructor(ReflectionFactory.java:466) 在 java.base/jdk.internal.reflect.ReflectionFactory.newConstructorForSerialization(ReflectionFactory.java:379) 在 jdk.unsupported/sun.reflect.ReflectionFactory .newConstructorForSerialization(ReflectionFactory.java:98) ... 还有 35 个internal.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:400) at java.base/jdk.internal.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:394) at java.base/java.security.AccessController.doPrivileged( AccessController.java:312) 在 java.base/jdk.internal.reflect.MethodAccessorGenerator.generate(MethodAccessorGenerator.java:393) 在 java.base/jdk.internal.reflect.MethodAccessorGenerator.generateSerializationConstructor(MethodAccessorGenerator.java:112) 在 java .base/jdk.internal.reflect.ReflectionFactory.generateConstructor(ReflectionFactory.java:466) 在 java.base/jdk.internal.reflect.ReflectionFactory.newConstructorForSerialization(ReflectionFactory.java:379) 在 jdk.unsupported/sun.reflect.ReflectionFactory .newConstructorForSerialization(ReflectionFactory.java:98) ... 还有 35 个在 java.base/jdk.internal.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:394) 在 java.base/java.security.AccessController.doPrivileged(AccessController.java:312) 运行(MethodAccessorGenerator.java:400) java.base/jdk.internal.reflect.MethodAccessorGenerator.generateSerializationConstructor(MethodAccessorGenerator.java:112) 在 java.base/jdk.internal 的 java.base/jdk.internal.reflect.MethodAccessorGenerator.generate(MethodAccessorGenerator.java:393)。在 jdk.unsupported/sun.reflect.ReflectionFactory.newConstructorForSerialization(ReflectionFactory.java: 98) ... 35 更多在 java.base/jdk.internal.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:394) 在 java.base/java.security.AccessController.doPrivileged(AccessController.java:312) 运行(MethodAccessorGenerator.java:400) java.base/jdk.internal.reflect.MethodAccessorGenerator.generateSerializationConstructor(MethodAccessorGenerator.java:112) 在 java.base/jdk.internal 的 java.base/jdk.internal.reflect.MethodAccessorGenerator.generate(MethodAccessorGenerator.java:393)。在 jdk.unsupported/sun.reflect.ReflectionFactory.newConstructorForSerialization(ReflectionFactory.java: 98) ... 35 更多MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:394) at java.base/java.security.AccessController.doPrivileged(AccessController.java:312) at java.base/jdk.internal.reflect.MethodAccessorGenerator.generate(MethodAccessorGenerator.java:393 ) 在 java.base/jdk.internal.reflect.ReflectionFactory.generateConstructor(ReflectionFactory.java:466) 在 java.base/jdk 的 java.base/jdk.internal.reflect.MethodAccessorGenerator.generateSerializationConstructor(MethodAccessorGenerator.java:112)。 internal.reflect.ReflectionFactory.newConstructorForSerialization(ReflectionFactory.java:379) 在 jdk.unsupported/sun.reflect.ReflectionFactory.newConstructorForSerialization(ReflectionFactory.java:98) ... 35 更多MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:394) at java.base/java.security.AccessController.doPrivileged(AccessController.java:312) at java.base/jdk.internal.reflect.MethodAccessorGenerator.generate(MethodAccessorGenerator.java:393 ) 在 java.base/jdk.internal.reflect.ReflectionFactory.generateConstructor(ReflectionFactory.java:466) 在 java.base/jdk 的 java.base/jdk.internal.reflect.MethodAccessorGenerator.generateSerializationConstructor(MethodAccessorGenerator.java:112)。 internal.reflect.ReflectionFactory.newConstructorForSerialization(ReflectionFactory.java:379) 在 jdk.unsupported/sun.reflect.ReflectionFactory.newConstructorForSerialization(ReflectionFactory.java:98) ... 35 更多reflect.MethodAccessorGenerator.generate(MethodAccessorGenerator.java:393) 在 java.base/jdk.internal.reflect.MethodAccessorGenerator.generateSerializationConstructor(MethodAccessorGenerator.java:112) 在 java.base/jdk.internal.reflect.ReflectionFactory.generateConstructor(ReflectionFactory. java:466) 在 java.base/jdk.internal.reflect.ReflectionFactory.newConstructorForSerialization(ReflectionFactory.java:379) 在 jdk.unsupported/sun.reflect.ReflectionFactory.newConstructorForSerialization(ReflectionFactory.java:98) ... 35 更多reflect.MethodAccessorGenerator.generate(MethodAccessorGenerator.java:393) 在 java.base/jdk.internal.reflect.MethodAccessorGenerator.generateSerializationConstructor(MethodAccessorGenerator.java:112) 在 java.base/jdk.internal.reflect.ReflectionFactory.generateConstructor(ReflectionFactory. java:466) 在 java.base/jdk.internal.reflect.ReflectionFactory.newConstructorForSerialization(ReflectionFactory.java:379) 在 jdk.unsupported/sun.reflect.ReflectionFactory.newConstructorForSerialization(ReflectionFactory.java:98) ... 35 更多reflect.ReflectionFactory.newConstructorForSerialization(ReflectionFactory.java:379) 在 jdk.unsupported/sun.reflect.ReflectionFactory.newConstructorForSerialization(ReflectionFactory.java:98) ... 35 更多reflect.ReflectionFactory.newConstructorForSerialization(ReflectionFactory.java:379) 在 jdk.unsupported/sun.reflect.ReflectionFactory.newConstructorForSerialization(ReflectionFactory.java:98) ... 35 更多
我使用 PowerMock 如下:
我一直在尝试使用:
@PowerMockIgnore({ "javax.management. ", "com.sun.org.apache.xerces. ", "javax.xml. ", "org.xml. ", "org.w3c.dom. ", "com. sun.org.apache.xalan. ", "javax.activation.*" })
在课程开始但问题仍然存在。
junit4 - PowerMockito-java.lang.NoSuchMethodError:运行测试时
我正在使用 Power mockito 来模拟测试的静态方法。我在我的代码中使用以下依赖项。
我面临以下错误
我的 power mockito 版本兼容吗?任何人有任何想法?
java - 测试 UUID 抛出 org.mockito.exceptions.misusing.MissingMethodInvocationException
我有一个非常简单的测试方法:
待测方法:
我用 powermock 来测试它:
但是我收到以下错误:
我能知道为什么吗?
我的依赖:
powermock - PowerMock ExpectNew 创建真实对象而不是模拟对象
上面的代码有什么问题?我没有看到 UserPersistor 的模拟对象。意思是,我不想看到“UserPersistor added user”打印出来。它不应该做任何事情。但它正在打印它,因为创建了 UserPersistor 的真实对象。我在我的实际项目中遇到了这个问题,我认为会模拟并尝试在更小的环境中解决。但我很难过。
junit - 使用 @RunWith(MockitoJUnitRunner.class) 模拟静态方法调用
我正在使用@RunWith(MockitoJUnitRunner.class)
. 我需要模拟一个静态方法调用,MosConfigFactory.getInstance()
. 我不能用 @RunWith(PowerMockRunner.class)
。如何使用 MockitoJUnitRunner 模拟静态方法调用?
java-11 - 无法初始化类 com.github.tomakehurst.wiremock.core.WireMockApp
我最近将我的 Java 版本升级到 Java11 for 8,从那以后我看到了这个错误:
java.lang.NoClassDefFoundError:无法初始化类 com.github.tomakehurst.wiremock.core.WireMockApp
在 com.github.tomakehurst.wiremock.WireMockServer.(WireMockServer.java:73) 在 com.github.tomakehurst.wiremock.WireMockServer.(WireMockServer.java:112)
下面你可以找到我对wiremock的使用:
我无法解决这个问题。请帮忙。