【问题标题】:Extension API internal error: org.powermock.api.extension.reporter.MockingFrameworkReporterFactoryImpl扩展 API 内部错误:org.powermock.api.extension.reporter.MockingFrameworkReporterFactoryImpl
【发布时间】:2016-09-09 18:58:20
【问题描述】:

我正在尝试使用 PowerMockRunner 编写单元测试,但出现以下错误:

java.lang.IllegalStateException:扩展 API 内部错误: org.powermock.api.extension.reporter.MockingFrameworkReporterFactoryImpl 无法位于类路径中。在 org.powermock.tests.utils.impl.AbstractTestSuiteChunkerImpl.getFrameworkReporterFactory(AbstractTestSuiteChunkerImpl.java:190) 在 org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.getMockingFrameworkReporter(JUnit4TestSuiteChunkerImpl.java:140) 在 org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.run(JUnit4TestSuiteChunkerImpl.java:119) 在 org.powermock.modules.junit4.common.internal.impl.AbstractCommonPowerMockRunner.run(AbstractCommonPowerMockRunner.java:53) 在 org.powermock.modules.junit4.PowerMockRunner.run(PowerMockRunner.java:59) 在 org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86) 在 org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

我已经检查了所有依赖项,没问题,我还需要别的吗?

【问题讨论】:

    标签: java eclipse junit powermock powermockito


    【解决方案1】:

    发完问题我找到了答案,好像是1.6.5版本的问题,需要额外的依赖,描述为here

    依赖是powermock-api-mockito-common 1.6.5版本,你可以将它添加到你的pom.xml中

    <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-api-mockito-common</artifactId>     
        <version>1.6.5</version>
    </dependency>
    

    或下载jar

    【讨论】:

    • 有人可以发布一个包含 JAR 的 zip 文件吗?此解决方案应该可以解决此问题。
    【解决方案2】:

    添加后

    <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-api-mockito-common</artifactId>     
        <version>1.6.5</version>
    </dependency> 
    

    我们得到 - “java.lang.IllegalStateException:扩展 API 内部错误:org.powermock.api.extension.proxyframework.ProxyFrameworkImpl 无法位于类路径中。”

    要解决此问题,请添加以下依赖项 -

    <dependency>
                <groupId>org.powermock</groupId>
                <artifactId>powermock-api-mockito</artifactId>
                <version>1.5.1</version>
                <scope>test</scope>
    </dependency>
    

    现在可以正常使用了

    【讨论】:

      【解决方案3】:

      按照这些 - http://fewtechissues.blogspot.com/2017/12/mockito-error.html 依赖项和版本为我解决了这个问题。

      <dependency>
          <groupId>org.mockito</groupId>
          <artifactId>mockito-core</artifactId>
          <version>1.10.19</version>
      </dependency>
      <dependency>
          <groupId>org.powermock</groupId>
          <artifactId>powermock-api-mockito</artifactId>
          <version>1.7.0</version>
          <scope>test</scope>
          <exclusions>
              <exclusion>
                  <groupId>org.mockito</groupId>
                  <artifactId>mockito-core</artifactId>
              </exclusion>
          </exclusions>
      </dependency>
      <dependency>
          <groupId>org.powermock</groupId>
          <artifactId>powermock-module-junit4</artifactId>
          <version>1.7.0</version>
          <scope>test</scope>
      </dependency>
      

      【讨论】:

        猜你喜欢
        • 2017-09-24
        • 2012-03-16
        • 1970-01-01
        • 1970-01-01
        • 2011-10-06
        • 2013-01-10
        • 2012-08-22
        • 2023-03-08
        • 2015-09-12
        相关资源
        最近更新 更多