我有一个典型的Junit测试类,配置为使用Arquillian(1.0.4.Final)运行。在Spring 3集成Arqullian(1.0.0.Beta2)的帮助下,一个昂贵的创建,无状态资源(在我的例子中是一个')被注入到测试实例中。所有测试方法都使用该资源。执行在远程tomcat7容器中执行。集成测试由Maven Failsafe插件控制。
虽然我告诉Arquillian使用ContextLifeCycle注释分享测试方法(' x' y')之间的应用程序上下文,不仅包括新的应用程序上下文,还包括资源,对于每个测试,整个测试类也从零开始实现。
@RunWith(Arquillian.class)
@SpringConfiguration("spring.xml")
@ContextLifeCycle(ContextLifeCycleMode.TEST_CASE)
public class Test {
@Autowired
A a;
@Test
public void x() {
// do something with 'a'
}
@Test
public void y(){
// do something with 'a'
}
}
我读过这是JUnit的默认行为。 Arquillian Test Runner是从Junit的BlockJUnit4ClassRunner派生出来的,但是如果Arquillian不能比那更智能地配置,那么ContextLifeCycle注释适合什么(模式TEST_CASE是默认的)?
非常感谢提前! Brainfrozen