2014-02-10 35 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/