我有我使用Maven構建一個項目,該項目使用Hibernate(和Spring)從數據庫中檢索數據等使用Maven進行集成測試的最佳做法?
我的「測試」爲我的項目中的DAO擴展Spring的AbstractTransactionalDataSourceSpringContextTests
,這樣一個數據源可以被連接到我測試的類中,以便能夠實際運行查詢/休眠邏輯,獲取數據等。
在其他幾個項目中,我使用這些類型的測試與HSQL數據庫 - 內存或指向文件)能夠高效地測試實際的數據庫查詢邏輯而不依賴於外部數據庫。這很好,因爲它避免了任何外部依賴和運行測試之前數據庫的「狀態」(每個測試都被包裝在一個回退的事務中)。
我很好奇,但有關組織這些測試,這是真正的集成測試鬆散的味道,與Maven的最佳途徑。將這些測試保存在src/test/java
中感覺有點骯髒,但從我讀過的內容來看,這似乎沒有一個與Maven一起組織集成測試的一致策略或實踐。
從我目前閱讀的內容來看,似乎我可以使用Failsafe plugin(或Surefire的第二個實例)並將其綁定到integration-test
階段,並且我還可以綁定自定義啓動或關閉邏輯(如用於啓動/停止HSQL實例)至pre-integration-test
或post-integration-test
。但是,這真的是最好的方法嗎?
所以我的問題基本上就是 - 什麼是對與Maven組織這次普遍接受的最佳做法?我無法在文檔中找到任何一致的答案。
我想是:從集成測試
- 獨立的單元測試,所以只有單元測試在
test
階段 - 自定義開機/關機邏輯結合
pre-integration-test
的能力運行,post-integration-test
- 已經從集成的測試報告合併/帶有單元測試神火報告
移動集成測試中一個單獨的項目並將單元測試與源代碼保持在同一項目中。 – 2014-02-06 13:59:03