簡體   English   中英

Maven surefire 插件不運行單個測試,在許多測試中

[英]Maven surefire plugin DOES NOT run single test, out of many

我有一個 maven 項目(多模塊,JDK 11),里面有很多模塊和測試。

我突然注意到我的一個測試沒有作為surefire插件的一部分被調用。 同一模塊中的其他測試確實可以成功調用。 我能夠通過 Intellij 成功運行此測試。 該測試不會被禁用或忽略。 它包含一組@Test 方法。 此外,我可以使用mvn test -Dtest=...參數專門運行它。

測試類將被成功編譯並出現在目標/測試類中。 (我已經用-X運行了,在那里找不到相關的附加數據)

我正在使用 surefire 插件 2.22.1 ; junit-vintage-engine:5.2.0 ; junit-platform-runner:1.2.0 ; Spring Boot 2.5.3(帶 BOM); 我的測試是基於 spring 的,並使用@ExtendWith(SpringExtension.class)調用@ExtendWith(SpringExtension.class)我確實有其他基於 spring 的測試按預期調用)。

在這個問題之后,我也嘗試使用 2.22.2。 它沒有解決問題

在這個問題之后,我已經驗證並且確實測試類中所有沒有調用的測試都以“測試”字為前綴

編輯:問題發生在屬於我公司較大項目一部分的模塊的測試中,該模塊在 POM 繼承鏈中繼承了各種默認值。 不幸的是,我不能僅將我的 POM 從中分離出來並呈現出來。 我試圖在一個新的隔離項目中重現該問題,但沒有成功(即所有測試都按預期調用)。

我錯過了什么? 是否有一個 Surefire 插件的隱藏開關來揭示幕后發生的事情,以及 surefire 在哪里提取他打算執行的測試列表?

surefire 插件(默認情況下)將僅運行具有以下名稱語法的測試...

"**/Test*.java" - includes all of its subdirectories and all Java filenames that start with "Test".
"**/*Test.java" - includes all of its subdirectories and all Java filenames that end with "Test".
"**/*Tests.java" - includes all of its subdirectories and all Java filenames that end with "Tests".
"**/*TestCase.java" - includes all of its subdirectories and all Java filenames that end with "TestCase".

可以在此處找到更多詳細信息

問題解決了! 繼@Kathrin Geilmann 評論后:

...默認情況下,surefire 只執行: ...Test.java, Test....java, ...Tests.java 和 ...TestCase.java

我的文件名以 ...Tester (!@#$$%^) 結尾

謝謝。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM