[英]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.