便宜的重置焊接方法?

时间:2014-02-10 15:04:51

标签: java java-ee cdi weld

我们有一个使用weld-se进行CDI的应用程序。 对于我们的JUnit测试,我们使用以下技巧启动新的焊接容器:WeldJUnit4Runner

由于我们有很多测试,每次Weld必须启动和初始化时,运行它们需要花费很长时间。有没有办法“重置”焊接,这样我们就可以获得一个新的WeldContainer,而不需要Weld每次都要重新扫描整个类路径?

2 个答案:

答案 0 :(得分:3)

简短回答:简单地停止你的开放背景。

详细解答:使用Weld Se进行测试的一种简单方法(单元测试)提供来自Apache本身的DeltaSpike项目http://deltaspike.apache.org/

目前,我还参与了一个开源项目的开发,该项目为您提供了一种方便的方法,可以通过JUnit Runner直接在单元测试中使用所有容器服务测试Java EE App。 https://github.com/NeoMorpheus/BeanTest

另请查看jglue.org/cdi-unit-user-guide/

答案 1 :(得分:0)

如果您能够牺牲隔离速度,请查看Pax Exam的焊接测试容器。

这不会在测试之间重置Weld,但只要所有测试都在同一个库/项目/ Maven模块中,Weld只会在整个测试套件中启动一次。

请参阅Getting Started With CDI Tests