使用maven包装类型“pom”运行测试

时间:2012-01-12 22:48:55

标签: maven junit pom.xml maven-surefire-plugin

当我的pom设置为打包类型“pom”时,我在运行单元测试时遇到了一些问题。起初,它说这个项目没有目标,所以我将maven-surefire-plugin添加到我的pom.xml中,将测试阶段绑定到maven-surefire-plugin测试目标。

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.9</version>
            <executions>
                <execution>
                    <phase>test</phase>
                    <goals>
                        <goal>test</goal>
                    </goals>
                </execution>
            </executions>
        </plugin> 

现在,surefire插件正在执行,但它表示没有测试可以运行。如果我将包装类型更改为jar并运行mvn test,那么它会获取我的测试文件。

当我运行mvn test -X时,它会显示“testSourceDirectory = C:\ dev \ dsl \ src \ test \ java”,这是正确的位置。包装类型“pom”的测试位置是否与“jar”不同?我尝试添加

            <configuration>
                <testSourceDirectory>src/test/java</testSourceDirectory>
            </configuration>

到surefire插件,但它根本没用。

1 个答案:

答案 0 :(得分:14)

正如Dave评论的那样,如果您使用pom打包,它只会执行以下生命周期目标。请参阅this相关的maven文档。

  • package
  • 安装
  • 部署

如果您需要它来运行任何其他目标,则需要明确指定它。例如,

mvn clean compiler:testCompile surefire:test