[英]Maven (surefire) test plugin excludes not working
我在我的pom.xml中有以下配置
<build>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.17</version>
<configuration>
<excludes>
<exclude>**/DocumentChangeSubscriberTest.java</exclude>
</excludes>
</configuration>
</plugin>
(...)
DocumentChangeSubscriberTest
是一個arquillian測試,我想只在指定的配置文件中運行。 當我鍵入mvn install
,運行所有測試,甚至是我想要排除的DocumentChangeSubscriberTest
。 如何從默認(匿名)配置文件中排除測試?
我嘗試了<includes><include>...
它工作正常 - 只包含測試運行。
我看到maven surefire測試插件運行測試,即使它們被排除在外:但這對我不起作用。 我還嘗試了許多版本的maven-surefire-plugin
而沒有結果。 有任何想法嗎?
雖然您已經找到答案,但有一個更簡單的解決方案。
無需使用<excludes>
標簽。 堅持maven命名約定就足夠了。 只需用*IT
后綴命名集成測試(例如: MyClassIT.java
),讓maven-failsafe-plugin
完成它的工作。
請記住, maven-surefire-plugin
旨在運行您的單元測試 。 這意味着具有以下通配符模式的所有測試類:
Test*.java
*Test.java
*TestCase.java
另一方面, maven-failsafe-plugin
旨在運行集成測試 ,並將自動包含具有以下通配符模式的所有測試類:
IT*.java
*IT.java
*ITCase.java
would solve all your problems ouf of the box. 你的arquillian測試肯定是一個集成測試,所以將它重命名為將解決你所有的問題。
順便說一句。 這篇文章在集成測試的分離單元測試方面也很有用。
希望它對某人有幫助。
好的,排除測試工作。 這就像拼錯我的類名一樣簡單: DocumentChangeSubsriberTest.java
而不是DocumentChangeSubscriberTest.java
。
抱歉。
雖然這個問題已經解決了,但是如果有人出現類似的排除問題,我會發布這個問題。 我有一個類似的問題 - 在我的排除中不適用於maven-failsafe-plugin。 我使用排除來排除運行一些集成測試。
我使用mvn verify
來運行集成測試。
就我而言,
<excludes>
<exclude>**/something/*Test.java</exclude>
</excludes>
如果我使用-Dit.test選項,則不起作用
即mvn verify -Dit.test="<some_package>"
但是如果我沒有指定-Dit.test,那么DOES是否正常工作。
即mvn verify
我遇到了類似的問題,只是為了讓人們看到另一件事:我的maven-surefire-plugin,如上所述,是在<reporting><plugins><plugin>....</plugin></plugins></reporting>
下意外聲明的。 <reporting><plugins><plugin>....</plugin></plugins></reporting>
但當然需要在<build><plugins><plugin>...</plugin></plugins></build>
。 頂部的<reporting>
和<build>
規范在頁面上方和下方都較高,因此需要驗證是否有人收到同樣的錯誤。
這個問題已經回答了這個問題(或者至少是一個非常類似的問題): 如何在maven安裝目標中跳過測試,同時在maven測試目標中運行它們?
看一看,它可能會有所幫助! 簡單的答案是,如果不使用自定義配置文件,您嘗試執行此操作不是一種選擇(但在該線程中可以更好地解釋)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.