我在捆绑easymock的情况下声明对powermock的测试依赖。
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-easymock-release-full</artifactId>
<version>1.4.12</version>
<type>pom</type>
<scope>test</scope>
</dependency>
当我运行mvn test
时,测试src声称能够找到org.powermock
但不能org.easymock
,尽管它包含在上述依赖项中。
我想知道由于测试范围的传递性是否是一个问题,所以我也尝试编译范围(因为文档http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html
提到编译依赖项在测试时可用)而没有任何运气。
我也尝试使用捆绑的jar而不是pom,但无济于事。我意识到我可以单独声明依赖项(即powermock和easymock的独立依赖项)但是出于我的目的,我只限于只包含一个依赖项,包括所有必需的测试库。
答案 0 :(得分:2)
将其追溯到powermock parent pom我看到easymock依赖项被标记为“已提供”。
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
<version>3.1</version>
<scope>provided</scope>
</dependency>
看起来powermock期待它的客户(在这种情况下你)提供easymock罐子。
答案 1 :(得分:1)
根据powermock-easymock-release-full POM,它不依赖于easymock(即easymock不会出现在powermock-easymock-release-full
依赖项中)。所以你必须为easymock添加另一个依赖项,依赖于你正在使用的测试引擎(JUnit或TestNG):http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.powermock%22%20AND%20%22easymock%22