2

我正在使用 AbstractTransactionalSpringContextTests 运行 spring 集成测试。spring 上下文只加载一次,然后运行所有测试。如果我希望我的测试在许多类和包中,我该怎么做。

当然,对于我的所有测试(在所有类和包中),spring 上下文应该只加载一次,而不是每个类或包一次。

4

1 回答 1

1

作为AbstractSingleSpringContextTests(的超类之一AbstractTransactionalSpringContextTests)状态的 Javadocs:

此类将基于上下文键缓存上下文:通常是描述构成上下文的 Spring 资源描述符的配置位置字符串数组。除非 setDirty() 方法被测试调用,否则上下文不会被重新加载,即使跨该测试的不同子类也是如此。如果您的上下文构建速度很慢,这尤其有用,例如,如果您使用 Hibernate 并且加载映射所花费的时间是一个问题。

您的上下文被缓存,因此在同一类加载器中运行的所有其他测试(即 - 在同一测试运行期间运行的所有其他测试)将使用缓存的上下文。您不需要做任何额外的设置 - 应该已经为您完成了。如果您对此不确定,或者希望排除故障,只需打开 org.springframework 的日志记录,您应该会看到很多有用的日志记录,关于何时加载上下文、哪个文件、如何加载;等等

于 2009-02-26T14:28:49.280 回答