【问题标题】:Putting Spring integration tests in different classes and packages将 Spring 集成测试放在不同的类和包中
【发布时间】:2010-10-10 00:39:39
【问题描述】:

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

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

【问题讨论】:

    标签: java spring junit spring-test


    【解决方案1】:

    正如AbstractSingleSpringContextTestsAbstractTransactionalSpringContextTests 的超类之一)的 Javadocs 状态:

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

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

    【讨论】:

      猜你喜欢
      • 2018-03-25
      • 2018-02-08
      • 2015-05-19
      • 2012-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-28
      • 2015-10-16
      相关资源
      最近更新 更多