我有一個模塊項目,它有一些需要外部硬件設備的單元測試。除非我指出設備可用,否則我不希望這些測試執行。通過傳遞命令行開關來啓用某些Maven測試
我覺得這是可以解決的使用Maven屬性和SureFire排除/包含配置,但我不知道該怎麼做。 A similar question顯示瞭如何根據Maven屬性禁用/啓用項目中的所有測試,但並未完全回答我的問題。總之,我想確定一個描述我不想運行的測試的模式(例如**/*ResourceTest.java
),除非我通過一個Maven屬性來啓用它們。
E.g.
mvn clean install
(運行標準測試,但跳過設備相關的測試)
mvn -Drun.device.tests=true clean install
(運行所有測試)
在此先感謝。
(修改爲刪除「資源」一詞的誤導性用法,替換爲「硬件設備」)。
我對「資源」一詞的使用非常不幸。我將編輯我原來的問題,希望能解釋我的意思。我仍然可以使用你的答案來解決我的問題(儘管你的具體例子現在將是多餘的 - 對不起)。 – 2012-07-24 11:08:48
是的,配置文件顯然是我的問題的答案。我會將您的答案標記爲已接受,但我也會發佈一個完整的答案,顯示它在我的POM中的工作原理。 (僅供參考 - 背景是我爲一家生產硬件產品的公司工作,每個與我們合作的項目都需要我們的產品,因此許多單元測試假設存在硬件)。 – 2012-07-24 11:21:41
@DuncanJones好了,現在已經很清楚了,你的理由聽起來不錯,可以觸發這樣的測試。謝謝 :)。我在等你,這個主題很有意思! – 2012-07-24 13:07:48