2015-02-11 89 views
2

我們在這裏有一個大型的Hybris項目,運行所有的測試需要很長時間(幾個小時,是的,一家大型諮詢公司創建了這個廢話)。我的目標是減少所有基於彈簧的集成測試,並用實際的單元測試代替它們。如何僅在Hybris項目中運行單元測試?

但是,如果在一個擴展中運行帶有Hybris ant build的測試(ant alltests -Dtestclasses.extensions=myext),並且啓動了具有junit租戶的服務器,並且該擴展中只有非基於Spring的單元測試。我也嘗試使用ant unittests,但那個甚至不執行我的測試。

有什麼辦法可以運行只有在@UnitTest註釋的測試,而不需要在螞蟻運行中啓動任何服務器?

PS:我有一個的hybris 5.1和5.3電子商務套件

回答

3

您應該使用ant unittests而不是ant unit tests

ant unittests -Dtestclasses.extensions=myext 

注意

運行簡單的單元測試完全不是那麼容易每當有人在被測代碼中使用Registry.getApplicationContext()的地方!

實際上,Registry.getApplicationContext()啓動了一個Hybris實例。如果這種情況發生在你身上,你需要消除對Registry.getApplicationContext()的更好的課程設計和/或模擬的特殊要求。

+1

是的,註冊表是hybris不理解依賴注入的地方 – 2015-02-12 08:11:55

+0

看起來你是對的5.3,不能用於5.1(沒有測試發現) – 2015-02-12 11:11:00

+0

'ant單元測試'是一個自動糾錯的錯字,抱歉 – 2015-02-12 11:32:12

0

這是很好的信息。但是,在我看來,即使對單個擴展運行單元測試仍然太多。單元測試應該是FAST!如果我選擇的話,我應該可以從我的IDE中運行一個單元測試方法。如果我不得不等待大量不相關的單元測試運行,那麼每次我想測試重構的代碼時,「紅綠測試」的整個概念都會丟失。

+0

你是完全正確!整個Hybris框架是一個完整的混亂,我從來沒有提到它作爲經驗,以確保我永遠不必與它合作。這是一個真正的痛苦,最糟糕的是我在20年的軟件工程中看到的 – 2018-03-01 21:46:59

相關問題