我们有一个使用weld-se for CDI的应用程序。对于我们的JUnit测试,我们使用以下技巧启动一个新的焊接容器:WeldJUnit4Runner
由于我们有很多测试,每次Weld必须启动和初始化自己时,运行它们都会花费很长时间。有没有办法“重置”焊接,这样我们就可以获得一个新的WeldContainer,而不必每次都重新扫描整个类路径?
发布于 2014-04-02 18:35:27
简而言之:简单地停止您打开的上下文。
详细答案:使用Weld Se进行测试(单元测试)的一个很好且简单的方法是从Apache本身的http://deltaspike.apache.org/中提供DeltaSpike项目。
目前,我还参与了一个开源项目的开发,该项目为您提供了一种通过JUnit运行器直接在单元测试中使用所有容器服务测试Java应用程序的便捷方法。https://github.com/NeoMorpheus/BeanTest
还可以了解一下jglue.org/cdi-unit-user-guide/
发布于 2014-03-04 03:25:00
如果您能够牺牲隔离来换取速度,请查看Pax Exam的焊接测试容器。
这不会重置测试之间的Weld,但只要所有测试都在同一个库/项目/Maven模块中,Weld就只在整个测试套件中启动一次。
https://stackoverflow.com/questions/21680626
复制相似问题