使用ClassNotFoundException“ThreadSafeMockingProgress”使用dropwizard + Powermock + Mockito + Maven构建错误

时间:2015-07-30 07:43:45

标签: java maven powermock

对于测试静态方法,我使用的是Power mock和pom.xml条目

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.8.1</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-all</artifactId>
        <version>1.8.5</version>
        <scope>test</scope>
    </dependency>

          <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-api-mockito</artifactId>
        <version>1.4.9</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-module-junit4</artifactId>
        <version>1.4.9</version>
        <scope>test</scope>
    </dependency>

`

我正在从命令提示符运行测试用例,这给出了类似

的错误
java.lang.RuntimeException: java.lang.ClassNotFoundException: org.mockito.internal.progress.ThreadSafeMockingProgress
at org.powermock.api.support.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:52)

然而,从Intellij ide,如果我运行所有测试用例(右键单击项目+运行“所有测试”),它的工作非常好。有没有人对这个问题有任何想法?

1 个答案:

答案 0 :(得分:1)

当您在pom.xml中定义power mock jar时,您不需要显式定义从属jar,因为类路径中可能会出现不兼容的版本。使用以下两个版本&amp;删除你的pom中的mockito依赖。

<dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-module-junit4</artifactId>
        <version>1.5.4</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-api-mockito</artifactId>
        <version>1.5.4</version>
        <scope>test</scope>
    </dependency>