neu*_*tic 8 java maven maven-failsafe-plugin
我的目录结构如下:
src/integrationTest/javasrc/test/javasrc/main/java我试图通过故障保护来进行集成测试,但是没有按照我想要的方式进行。
我已经试过了:
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.17</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
<configuration>
<testSourceDirectory>src/integrationTest/java</testSourceDirectory>
<testClassesDirectory>${project.build.directory}/it-classes</testClassesDirectory>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
和这个:
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.17</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
<configuration>
<includes>
<include>src/integrationTest/**/*.java</include>
</includes>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
无济于事 故障安全找不到运行的测试。
我已经能够使用build-helper-maven插件添加一个test-source目录,然后使用failsafe运行测试。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.9.1</version>
<executions>
<execution>
<id>add-integration-test-source-as-test-sources</id>
<phase>generate-test-sources</phase>
<goals>
<goal>add-test-source</goal>
</goals>
<configuration>
<sources>
<source>src/integrationTest/java</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
但是,现在的问题是,surefire现在也将测试作为单元测试运行。当故障保险应该能够找到测试时,似乎也不必使用其他插件。我不希望不需要使用build-helper maven插件并配置surefire来排除该路径。
我究竟做错了什么?
默认情况下,故障保护配置为仅包括 IT * .java,* IT.java或* ITCase.java。同时,仅src/test/java编译来自的测试源。您需要修改这两种行为。
使用build-helper-maven-plugin添加src/integationTest/java作为测试源maven-compiler-plugin来自动拾取。(您在上一次尝试中已经完成了此操作。)
指示直接maven-surefire-plugin排除您的集成测试(请参见下面的示例)或仅包括非集成测试(请参见默认包含)。
指示maven-failsafe-plugin仅包含您的集成测试,而不是默认包含。
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.17</version>
<configuration>
<excludes>
<exclude>**/*Stuff.java</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.17</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
<configuration>
<includes>
<include>**/*Stuff.java</include>
</includes>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
实际上,使用testClassesDirectory可能也可以限制每个测试插件的范围,但是您必须对maven-compiler-plugin输出类进行更改以将其输出到不同的文件夹,也许将其test-compile执行分为两个执行,所以可能不值得付出努力。
| 归档时间: |
|
| 查看次数: |
3451 次 |
| 最近记录: |