我正在尝试使用jUnit 4.4执行测试,为一组集成测试执行设置和拆解.拆卸需要可靠运行.我在使用TestNG时遇到了其他问题,所以我想回到jUnit.在运行任何测试之前以及所有测试完成之后,可以执行哪些挂钩?
注意:我们正在使用maven 2进行构建.我尝试过使用maven pre-和post-integration-test阶段,但是,如果测试失败,maven会停止并且不会运行post-integration-test,这没有任何帮助.
我有一个课程,我用它作为单元测试的基础.在这个类中,我初始化我的测试的整个环境,设置数据库映射,在多个表中输入许多数据库记录等.该类有一个带有@BeforeClass注释的方法来进行初始化.接下来,我将该类扩展为具有@Test方法的特定类.
我的问题是,由于前一类对于所有这些测试类完全相同,我如何确保它们仅对所有测试运行一次. 一个简单的解决方案是我可以将所有测试保持在一个类中.但是,测试的数量很大,它们也是根据功能头分类的.所以他们位于不同的班级.但是,由于它们需要完全相同的设置,因此它们继承了@BeforeClass.因此,每个测试类至少完成一次整个设置,总共花费的时间比我想要的多.
但是,我可以将它们全部放在一个包下的各种子包中,因此如果有办法,我可以为该包中的所有测试运行一次设置,那就太棒了.
我正在编写一组集成测试,每个测试类启动服务器并停止服务器,这需要很长时间。是否可以创建一个测试套件,其中单个服务器实例可用于一组测试类?
谢谢,曼尼什
我有一组基于Spring的测试。
为了快速执行测试,我想确保Spring上下文仅初始化一次,然后所有测试都应针对该上下文运行,然后将其关闭。
我已经尝试了以下方法:
@RunWith(SpringJUnit4ClassRunner.class)和@ContextConfiguration(MyAnnotatedConfig.class)初始化spring上下文@RunWith(SpringJUnit4ClassRunner.class)和@TestExecutionListeners({MyTestExecutionListener.class})与手写测试执行侦听器一起使用,该侦听器将初始化spring上下文并将其注入到具体的测试类中@BeforeClass在基类和静态字段中使用侦听器来存储spring上下文,以及@AfterClass用于关闭的使用这三种方法,spring上下文似乎不止一次被初始化,这需要很多时间。看起来JUnit在运行测试时会卸载类,因此有时会丢失静态字段的内容。
有没有办法确保spring上下文仅初始化一次?
java ×4
junit ×2
spring ×2
spring-test ×2
database ×1
junit4 ×1
package ×1
spring-boot ×1
testing ×1
unit-testing ×1