2015-11-09 4 views
1

Я хочу повторно использовать sql-скрипт из тестовых ресурсов модуля database в своем тестовом режиме в модуле pizza, но я не могу получить скрипт из путь к классам.Как получить тестовый ресурс из другого модуля

Моя структура каталогов выглядит следующим образом:

(я оставил большинство файлов/каталогов из для краткости)

| 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 модуля к создайте базу данных в памяти из сценария V1__create_schema.sql в модуле database, поэтому я могу запускать тесты против него. Я положил это в мой Test- 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, без везения.

Как я могу получить этот ресурс?

... или, может быть, я использую неправильный подход?

EDIT: Большое спасибо за все предложения, ответ, который я искал, был одним из Java1337. Однако, похоже, на этот вопрос уже был дан ответ на SO. Не могу поверить, что я пропустил это! Извините за неудобства!

+0

Укажите зависимость от базы данных в pizza pom –

+0

Да, у меня это есть. Не помогает. – Roger

+0

Как вы определяете свои зависимости от модуля базы данных из модуля pizza? Возможно, вам понадобится, чтобы модуль базы данных создавал тестовую банку, а затем добавлял зависимость от этого в вашем модуле pizza. Для получения дополнительной информации см. Следующий ниже: 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, обратитесь к тестовой упаковке следующим образом:

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

Cheers!

Смежные вопросы