2015-11-09 61 views
1

我想在pizza模塊的內存中測試中從database模塊的測試資源中重新使用sql腳本,但無法從腳本獲取腳本類路徑。如何從另一個模塊獲取測試資源

我的目錄結構是這樣的:

(我最左側的文件/目錄出來爲簡潔起見)現在

| pom.xml 
| 
|   
+---database 
| | pom.xml 
| | 
| \---src 
|  \---test 
|   \---resources 
|    \---db 
|     \---migration 
|      \---hsqldb 
|        V1__create_schema.sql 
|        V2__config_data.sql 
|        V3__user_data.sql 
|        
+---pizza 
| | pom.xml 
| | 
| \---src 
|  +---main 
|  | +---java 
|  | | \---com 
|  | |  \---example 
|  | |   +---domain 
|  | |   |  DoStuff.java 
|  | |     
|  | \---resources 
|  |  | applicationContext.xml 
|  |    
|  \---test 
|   +---java 
|   | \---com 
|   |  \---example 
|   |    DoStuffTest.java 
|   |     
|   \---resources 
|     insert-test-data.sql 
|     test-applicationContext.xml 
|     test-in-memory-database.xml 
|     
\---poms 
    | pom.xml 
    | 
    \---parent 
      pom.xml 

,我想測試的ApplicationContext的pizza模塊在請在database模塊中的V1__create_schema.sql腳本中創建一個內存數據庫,以便我可以對其執行測試。我把這個在我的測試 - applicationContext.xml

<jdbc:embedded-database id="dataSource" type="HSQL"> 
    <jdbc:script location="classpath:V1__create_schema.sql"/> 
    <jdbc:script location="insert-test-data.sql"/> 
</jdbc:embedded-database> 

...但它無法找到我的類路徑V1__create_schema.sql。我嘗試了很多不同的方式來達到它,包括maven-remote-resources-plugin,但沒有運氣。

我該如何去掌握該資源?

...或者我正在使用錯誤的方法?

編輯:非常感謝所有的建議,我正在尋找的答案是從Java1337的。但是,似乎這個問題已經在SO上得到解答。我不相信我錯過了!不便之處!

+0

在比薩pom中放置對數據庫的依賴關係 –

+0

是的,我明白了。沒有幫助。 – Roger

+0

你如何從比薩模塊內定義你的依賴到數據庫模塊?您可能需要讓數據庫模塊創建一個測試jar,然後爲您的比薩模塊添加一個依賴項。有關詳細信息,請參閱以下內容:https://maven.apache.org/plugins/maven-jar-plugin/examples/create-test-jar.html – DB5

回答

5

如果你想獲得「測試資源」,則需要按如下方式在數據庫中生成/ pom.xml的一個「測試罐子」:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-jar-plugin</artifactId> 
    <version>2.6</version> 
    <executions> 
     <execution> 
     <goals> 
      <goal>test-jar</goal> 
     </goals> 
     </execution> 
    </executions> 
    </plugin> 

,然後在披薩/ pom.xml,參考測試jar如下:

<dependencies> 
    <dependency> 
     <groupId>groupId</groupId> 
     <artifactId>database</artifactId> 
     <type>test-jar</type> 
     <version>version</version> 
     <scope>test</scope> 
    </dependency> 
</dependencies> 

乾杯!

相關問題