2014-02-10 61 views
4

我們有一個使用CDI焊接的應用程序。 對於我們的JUnit測試,我們火了使用下面的技巧一個新的焊接容器:WeldJUnit4Runner便宜的方法來重置焊接?

因爲我們有很多的測試,運行它們得到每一個焊縫具有啓動和初始化自己的時間需要很長的時間。有沒有什麼辦法可以「重新設置」焊接,這樣我們就可以得到一個新的WeldContainer,而Weld不必每次都重新掃描整個類路徑?

+1

唯一的解決辦法是把你的測試在同一個測試類。這是我們做什麼用的Arquillian –

+0

測試CDI時,我會用CdiTestRunner(見http://deltaspike.apache.org/test-control.html)這只是真棒! –

回答

0

如果你能犧牲隔離速度,看看在Pax Exam的焊接試驗容器。

這不會復位焊接試驗之間,但只要所有的測試都相同的庫/項目/ Maven的模塊中,焊接獲取整個測試套件只啓動一次。

Getting Started With CDI Tests

3

簡短的回答:只要停止你的開放環境。

詳細答案:使用Weld Se進行測試(單元測試)的一個簡單易用的方法是從Apache本身提供DeltaSpike項目http://deltaspike.apache.org/

目前我還參加了一個開源項目,它爲您提供了通過JUnit運行所有直接集裝箱服務在單元測試中測試您的Java EE應用程序的一種便捷方式的發展。 https://github.com/NeoMorpheus/BeanTest

也看看jglue.org/cdi-unit-user-guide/