我们有一个使用weld-se进行CDI的应用程序。 对于我们的JUnit测试,我们使用以下技巧启动新的焊接容器:WeldJUnit4Runner
由于我们有很多测试,每次Weld必须启动和初始化时,运行它们需要花费很长时间。有没有办法“重置”焊接,这样我们就可以获得一个新的WeldContainer,而不需要Weld每次都要重新扫描整个类路径?
答案 0 :(得分:3)
简短回答:简单地停止你的开放背景。
详细解答:使用Weld Se进行测试的一种简单方法(单元测试)提供来自Apache本身的DeltaSpike项目http://deltaspike.apache.org/。
目前,我还参与了一个开源项目的开发,该项目为您提供了一种方便的方法,可以通过JUnit Runner直接在单元测试中使用所有容器服务测试Java EE App。 https://github.com/NeoMorpheus/BeanTest
答案 1 :(得分:0)
如果您能够牺牲隔离速度,请查看Pax Exam的焊接测试容器。
这不会在测试之间重置Weld,但只要所有测试都在同一个库/项目/ Maven模块中,Weld只会在整个测试套件中启动一次。