2015-01-31 3 views
3

Я ява веб-проект Gradle разрабатываются для работы в Wildfly со следующей структурой SRC/тест/ресурсы вместо SRC/основные/ресурсов:Скажите Gradle выбрать persistence.xml из

- src/main/java 
- src/main/resources 
    \-- META/INF 
     \-- persistence.xml 
- src/test/java 
- stc/test/resources 
    \-- META/INF 
     \-- persistence.xml 

а также следующий build.gradle:

apply plugin: 'war' 
apply plugin: 'eclipse-wtp' 

sourceCompatibility = 1.8 
version = '1.0' 
jar { 
    manifest { 
     attributes 'Implementation-Title': 'Arch Project', 'Implementation-Version': version 
    } 
} 

repositories { 
    mavenCentral() 
} 

configurations { 
    provided 
} 

sourceSets { 
    main.compileClasspath += configurations.provided 
    test.compileClasspath += configurations.provided 
    test.runtimeClasspath += configurations.provided 
} 

dependencies { 

    /* Java EE 7 API. */ 
    provided 'javax:javaee-api:7.0' 

    /* JUnit for unit testing. */ 
    testCompile 'junit:junit:4.1.2' 

    /* DbUnit - Persitence unit testing. */ 
    testCompile 'org.dbunit:dbunit:2.5.0' 
    testCompile 'org.slf4j:slf4j-simple:1.7.9' 

    /* Hibernate. */ 
    testCompile 'org.hibernate:hibernate-core:4.3.7.Final' 

    /* Hibernate provider for JPA. */ 
    testCompile 'org.hibernate:hibernate-entitymanager:4.3.7.Final' 

    /* Hibernate dependency. */ 
    testCompile 'com.fasterxml:classmate:1.1.0' 

    /* PostgreSQL for persistence tests context */ 
    testCompile 'org.postgresql:postgresql:9.3-1102-jdbc41' 
} 

persistence.xml файла в исходной папке src/test/resources является тот, который я хочу использовать, когда я запускаю свои тесты, вместо этого другого из src/main/resources.
Мне нужно, потому что persistence.xml от src/main/resources полагается на источник данных JTA, определенный на сервере приложений Java EE, поэтому я считаю, что он не будет работать при локальном выполнении.
Как настроить это для успешного выполнения тестов внутри Eclipse и Gradle по команде gradle test?

Заранее спасибо.

+0

Поможет ли вам как-то: http://forums.gradle.org/gradle/topics/resources_from_src_main_resources_not_included_for_test? – Opal

+0

Thx @Opal, но это не помогло. Если я использую src/main/resources, он работает, проблема в том, когда я хочу использовать 'persistence.xml' из src/test/resources. –

ответ

1

для решения этой проблемы выполните следующие инструкции:

В свойствах проекта в Eclipse, Java Build Path-> Order и экспорт, поместите тестовую папку выше папки Src.

, а также говорить, что еще один вопрос: Use different JPA.persistence.xml in Eclipse depending on production or test environment

+0

", а также поговорить о другом вопросе:« Не могли бы вы прояснить, что вы имеете в виду? Вы имеете в виду «Пожалуйста, следуйте инструкциям, приведенным здесь»? Но в любом случае есть более одного ответа, что вы имеете в виду? Я предполагаю [этот] (http://stackoverflow.com/a/31923699/3982001), потому что он начинается как ваш, но все же это неясно. –

+0

Ваши тесты будут работать в eclipse, если вы разместите тестовую папку над вашей папкой src. Нажмите кнопку rigth в проекте Eclipse, свойствах, пути сборки Java и перейдите на вкладку «Заказ и экспорт». будут ваши источники и ресурсы, чем вы переместите свой src/test/resource на ваш ресурс src/main/resource. Таким образом, Eclipse сначала найдет persistence.xml в тестовом ресурсе, и тесты будут работать с persistence.xml теста в среде IDE Eclipse. –