在我的春天+ Maven的應用程序,我已經創建了,我現在想對多個數據源運行數據訪問層的一些測試。我有類似:行家:運行相同的測試進行不同的配置
@ContextConfiguration(locations={"file:src/test/resources/testAppConfigMysql.xml"})
public class TestFooDao extends AbstractTransactionalJUnit38SpringContextTests {
public void testFoo(){
...
}
}
它目前的配置位置的硬編碼的,所以它只能針對一個數據源使用。 調用兩次測試並傳遞兩個不同配置(比如testAppConfigMysql.xml和testMyConfigHsqlDb.xml)的最佳方式是什麼?
我見過的建議通過系統屬性來做到這一點。我如何告訴maven使用系統屬性的不同值來調用兩次測試?
但是我有很多的daos美孚,酒吧,...(其中約15),因此,15個測試類TestFooDao,TestBarDao,...在你的解決方案,我不得不加倍類的數量,這是我做的不想要(我也不想把所有的測試合併成一個巨大的類) – jfu 2012-04-27 10:02:51
是的,我知道。但我真的沒有看到更好的解決方案。正如我所說的,我完全意識到這個解決方案並不完美,並且會吸引一點點。我剛纔想到的另一件事是嘗試使用某種JUnit的Theories與Spring配合的命令支持。這意味着你可以放棄Spring上下文的基於註解的配置,並嘗試通過調用某種方法來設置它。不過,我不知道Spring API足夠好,可以在這裏給你一些參考或示例。我不確定它是否真的可行並且工作正常,但我只是想說一下。 – 2012-04-30 09:39:23
另一個想法:可能延長一點點春天測試支持類(如'SpringJUnit4ClassRunner'或周圍的一些助手)會解決的情況下,如果沒有真正出的現成的解決方案。在我看來,您可以覆蓋處理'@ ContextConfiguration'註釋的代碼片段,並嘗試實現自己的邏輯,可能使用接受參數指向多個上下文的自定義註釋。 – 2012-04-30 13:10:18