it-swarm.com.ru

Внутренняя ошибка API расширения: org.powermock.api.extension.reporter.MockingFrameworkReporterFactoryImpl

Я пытаюсь написать модульный тест с использованием PowerMockRunner, но я получил следующую ошибку:

Java.lang.IllegalStateException: Внутренняя ошибка API расширения: org.powermock.api.extension.reporter.MockingFrameworkReporterFactoryImpl не может быть расположен в classpath. в 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)

Я проверил все зависимости, и все в порядке, мне нужно что-то еще?

17
Thiago Gonzaga

После публикации вопроса я нашел ответ, похоже, проблема с версией 1.6.5, нужна дополнительная зависимость, она описана здесь .

Зависимость - powermock-api-mockito-common version 1.6.5, вы можете добавить ее к себе pom.xml 

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

или скачайте jar

20
Thiago Gonzaga

После добавления 

<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>

теперь работает нормально

5
Moni

После этого - 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>
1
barath