2009-02-26 53 views
1

我正在使用AbstractTransactionalSpringContextTests來運行Spring集成測試。 Spring上下文只加載一次,然後運行所有測試。 如果我想讓我的測試在許多類和包中,我該怎麼做。將Spring集成測試放在不同的類和包中

當然,對於我所有的測試(在所有類和包中),應該只加載一次spring context,而不是每個類或包都加載一次。

回答

1

作爲的Javadoc AbstractSingleSpringContextTests(的AbstractTransactionalSpringContextTests超類中的一個)狀態:

該類將緩存基於上下文關鍵上下文:正常的配置位置字符串數組描述了Spring資源描述符構成該上下文。除非測試調用setDirty()方法,否則即使在此測試的不同子類中,也不會重新加載上下文。如果你的上下文構造緩慢,這是特別有益的,例如,如果你使用Hibernate並且加載映射所花費的時間是一個問題。

您的上下文已被緩存,所以在同一個類加載器中運行的所有其他測試(即 - 在同一測試運行期間運行的所有其他測試)都將使用緩存的上下文。你不需要做任何額外的設置 - 應該已經爲你完成了。如果你不確定這個問題,或者希望排除故障,只需打開org.springframework的日誌記錄,你應該看到很多關於什麼時候上下文被加載的信息,等等。