讀古今文學網 > Maven實戰 > 10.5 包含與排除測試用例 >

10.5 包含與排除測試用例

10.2節介紹了一組命名模式,符合這一組模式的測試類將會自動執行。Maven提倡約定優於配置原則,因此用戶應該盡量遵守這一組模式來為測試類命名。即便如此,maven-surefire-plugin還是允許用戶通過額外的配置來自定義包含一些其他測試類,或者排除一些符合默認命名模式的測試類。

例如,由於歷史原因,有些項目所有測試類名稱都以Tests結尾,這樣的名字不符合默認的3種模式,因此不會被自動運行,用戶可以通過代碼清單10-14所示的配置讓Maven自動運行這些測試。

代碼清單10-14 自動運行以Tests結尾的測試類

上述代碼清單中使用了**/*Tests.java來匹配所有以Tests結尾的Java類,兩個星號**用來匹配任意路徑,一個星號*匹配除路徑風格符外的0個或者多個字符。

類似地,也可以使用excludes元素排除一些符合默認命名模式的測試類,如代碼清單10-15所示。

代碼清單10-15 排除運行測試類

上述代碼清單排除了所有以ServiceTest結尾的測試類,以及一個名為TempDaoTest的測試類。它們都符合默認的命名模式**/*Test.java,不過,有了excludes配置後,maven-surefire-plugin將不再自動運行它們。