2010-06-03 68 views
3

我有一個maven項目,可將特定格式的文本文件轉換爲另一種格式。 爲了測試,我在src/test/resources中放入了大量的測試文件。多個獨立Maven項目的常見測試數據

我也有另一個項目,使用第一個做轉換,然後在輸出格式上做一些額外的東西。我也想測試這個項目對同一個測試數據集,但我不想有重複的數據集,我希望能夠單獨測試第一個項目,因爲它也是一個獨立的轉換器項目。

有沒有常見的解決方案呢?只要每個項目都可以獨立訪問數據集,我不介意沒有項目源樹中的測試數據集。我不想爲此設置數據庫。我在想像一個比RDBMS更簡單的測試數據庫。是否有任何應用程序可以用於特定的Maven插件?易於設置和簡單是我的首要任務。另外我想像打包測試數據並將其放入內部maven倉庫,然後下載並將其解壓到junit代碼中。或者更好的是,有沒有一個Maven插件可以爲我做到這一點?

任何想法?

回答

5

可以與Maven共享資源,例如在AssemblyDependency插件的幫助下。基本上:

  1. 創建模塊與pom類型的包裝,以保持所述共享資源
  2. 使用裝配插件打包模塊作爲拉鍊
  3. 聲明在此拉鍊在「消費者」模塊的依賴關係
  4. 並使用dependency:unpack-dependencies(加上一些排除規則)來解壓ZIP

這種方法在How to share resources across projects in Maven詳細說明。它需要一些設置(這是「提供」),並不太複雜。

3

只需將它們放在單獨模塊的src/main/resources目錄中的樹中,以共享測試數據。它們將被添加到jar文件中,並且我在您的nexus存儲庫,文件共享,〜/ .m2/repository或用於存儲/分發maven工件的任何內容中進行了很好的壓縮和版本化。

然後,只需在測試範圍內的項目中添加一個依賴項,並使用資源加載從jar中獲取它們。

你不需要任何特殊的插件或其他基礎設施。這只是工作。

+0

我能做到這一點,但沒有將測試數據綁定到其中一個項目的資源?就像有一個沒有任何Java代碼但只有測試數據的項目,並將它用作想要測試這個測試數據的任何項目的測試依賴項? – Paralife 2010-06-03 22:24:18

+0

我不認爲這是一個好的解決方案,你不應該在最終的工件中捆綁「大量的測試文件」。 – 2010-06-03 22:42:38

+0

什麼不是一個好的解決方案?用一個真實的項目捆綁大量的測試數據,或者通常將大量的測試數據捆綁爲一個項目本身(一個「僅用於測試數據的工件」)以用於任何其他項目作爲測試依賴項? – Paralife 2010-06-03 22:47:38