[英]How to include integration tests via maven-surefire-plugin using path
我的 Java Maven 項目在目錄結構中將單元測試與集成測試分開:
src/test/java
下的單元測試;src/integration-test/java
。 src/integration-test/java
是一個非默認的測試源目錄,所以我使用build-helper-maven-plugin
手動將它添加到項目中,如您所見:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>add-integration-test-sources</id>
<phase>generate-test-sources</phase>
<goals>
<goal>add-test-source</goal>
</goals>
<configuration>
<sources>
<source>src/integration-test/java</source>
</sources>
</configuration>
</execution>
...
</executions>
</plugin>
我還使用maven-failsafe-plugin
在測試執行流程中包含測試集成類,如下所示。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>3.0.0-M4</version>
<configuration>
<includes>
<include>**/*IntegrationTest.java</include>
</includes>
</configuration>
<executions>
<execution>
<id>integration-tests</id>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
...
</configuration>
</execution>
</executions>
</plugin>
這種方法有效,但迫使我在測試類中使用命名約定。 准確地說,只會執行以“IntegrationTest”結尾的那些。
我想根據路徑中的命名約定而不是文件名來配置插件。 准確地說,我打算允許src/integration-test/java
下的所有類,而不管文件名。 到目前為止,我沒有成功,網絡上的每個教程都只展示了我在上面實現和展示的方法。
有沒有人對如何做到這一點有任何建議?
謝謝
AFAIK,兩個插件(surefire 和 failsafe)都只使用類路徑。 因此,要實現您想要的目標,您要么必須使用命名約定(例如標准測試與 IT),要么使用兩個不同的模塊。
我能找到的唯一其他(非常丑陋的)解決方案是:
這可能有效,但維護和編碼是地獄;)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.