我的目錄結構如下所示: 的src/integrationTest/JAVA 的src/test/java下 的src/main/java的配置Maven的故障保護,插件來找到正確的集成測試
我試圖讓故障安全到拿起集成測試,但沒有按照我的意願去做。
我已經試過這樣:
<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>
這:
<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>
無濟於事;故障安全不會找到要運行的測試。
我已經能夠使用build-helper-maven插件添加一個測試源目錄,然後failafe運行測試。
<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>
但是,現在的問題是,surefire現在也將測試作爲單元測試運行。另外,當故障安全應該能夠找到測試時,似乎沒有必要使用另一個插件;我寧願不需要使用build-helper maven插件並配置surefire來排除該路徑。
我在做什麼錯?
當然,最小配置慣例是將你的集成測試類保存在src/test/java'中,並根據這些命名模式重新命名它們:'IT * .java','* IT.java'或'* ITCase .java'。 –
以上似乎沒有工作:( 我同意wrt命名約定;但目前在這種情況下不可能 – neuronotic
請驗證您在該文件夾中有'.class'文件通常'maven- compiler-plugin'在'test-compile'階段生成它們,但是它適用於'src/test/java'文件夾。如果你使用的是不同的文件夾,我認爲你需要添加一個額外的編譯步驟。 –