当我的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插件,但它根本没用。
答案 0 :(得分:14)
正如Dave评论的那样,如果您使用pom
打包,它只会执行以下生命周期目标。请参阅this相关的maven文档。
如果您需要它来运行任何其他目标,则需要明确指定它。例如,
mvn clean compiler:testCompile surefire:test