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

use*_*208 13 junit pom.xml maven 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> 
Run Code Online (Sandbox Code Playgroud)

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

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

            <configuration>
                <testSourceDirectory>src/test/java</testSourceDirectory>
            </configuration>
Run Code Online (Sandbox Code Playgroud)

到surefire插件,但它根本没有帮助.

Rag*_*ram 14

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

  • 安装
  • 部署

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

mvn clean compiler:testCompile surefire:test
Run Code Online (Sandbox Code Playgroud)