maven测试问题

时间:2011-07-29 04:35:05

标签: unit-testing maven

我有maven项目X,它取决于项目Y.当我在项目X上运行测试时,它无法在项目Y中找到测试文件,尽管它在类路径中。

1 个答案:

答案 0 :(得分:3)

Maven中的通常惯例是让单元测试localy到您的项目,这意味着您不能使用当前项目之外的类。这也是因为测试类不会被打包到jar中而与生产代码(src / main / java)相矛盾。但您可以通过定义要重用的类来解决问题,如下所示(项目Y):

<build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>test-jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
</build>

您必须执行mvn install(或者可能是mvn deploy),而在项目Y中,您必须使用上面的定义,如下所示:

<dependency>
  <groupId>${project.groupId}</groupId>
  <artifactId>test</artifactId>
  <version>${project.version}</version>
  <type>test-jar</type>
  <scope>test</scope>
</dependency>