我有一堆JUnit测试用例(集成测试),它们在逻辑上分为不同的测试类。
我们能够为每个测试类加载一次Spring应用程序上下文,然后将其重新用于JUnit测试类中的所有测试用例
但是,我们只是想知道是否有一种方法可以对一堆JUnit测试类仅加载一次Spring应用程序上下文。
FWIW,我们使用Spring 3.0.5,JUnit 4.5并使用Maven构建项目。
是的,这完全有可能。你要做的就是locations在测试类中使用相同的属性:
@ContextConfiguration(locations = "classpath:test-context.xml")
Spring按locations
属性缓存应用程序上下文,因此,如果locations
第二次出现相同的上下文,Spring将使用相同的上下文,而不是创建一个新的上下文。
这具有有趣的含义。因为Spring不知道JUnit何时完成,所以它将永远缓存所有上下文,并使用JVM shutdown挂钩关闭它们。此行为(尤其是当你有许多不同的测试类时locations
)可能导致过多的内存使用,内存泄漏等。缓存上下文的另一个优点。
在运行每个测试类之前,有什么方法可以将应用程序上下文恢复到它的原始状态吗?我不想让“TrainingSessionServiceTest”类扩展AbstractTransactionalJunit4SpringContextTests。以下是我的应用程序上下文的相关部分:
问题内容: 我的WEB-INF目录下有一些XML文件: lyricsBaseApp-servlet.xml hibernate.xml dataSource.xml beans.xml servlet xml导入其他xml文件: 我希望我的junit4 类包含整个spring配置。使用默认文件名,我创建了一个文件。最后,我不知道该放在哪里… 我试过了: 要么 和其他一些想法,但都失败了。有人可以指
问题内容: 我正在使用Spring 3.1.1.RELEASE,JUnit 4.8.1和HSQL 2.7.7内存数据库。我有一个测试班级注释为 问题是,当我运行“ mvn clean test”时,似乎所有的测试类都在上述类失败之后运行,因为内存数据库已被破坏并且没有重新创建。我收到类似的错误 这是我设置给出异常的测试类(在上述类之后运行)的方式…… 在运行每个测试类之前,有什么方法可以将应用程序
嗨,我正试图让spring junit测试用例...我要求加载完整的应用程序上下文。但是,junit测试不会初始化完整的应用程序上下文。 因此,它应该扫描com.test包中的所有spring bean,并将它们加载到Junit TestCase的applicationcontext中。但从大豆的产量来看,它似乎没有做到这一点。