未找到Maven测试依赖项

时间:2012-04-30 10:33:54

标签: maven maven-2 build dependencies powermock

我在捆绑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的独立依赖项)但是出于我的目的,我只限于只包含一个依赖项,包括所有必需的测试库。

2 个答案:

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