2013-10-24 3 views
0

Я пытаюсь запустить свои тестовые примеры в идее 12 после настройки моей многопроектной сборки с плагином идеи градации. Мой проект настроен на использование значений по умолчанию для тестовых ресурсов (src/test/resources). Я применяю некоторую фильтрацию к этим ресурсам:Почему плагин идеи gradle настраивает classpath для использования необработанных/исходных тестовых ресурсов вместо фильтрованных/сгенерированных ресурсов.

// filter test resources 
processTestResources { 
    doLast { 
     ant.replace(dir: sourceSets.test.output.resourcesDir, replacefilterfile: testProps, includes: "**/*.xml,**/*.properties") 
    } 
} 

Кроме processTestResources зависит от пользовательской задачи, которая копирует некоторые «генерируемой» файлы sourceSets.test.output.resourcesDir.

Многие из моих тестов терпят неудачу, поскольку они полагаются на отфильтрованные тестовые ресурсы. Когда я смотрю на путь класса, который используется для тестовых примеров, он указывает на rootProject/out/test/targetProject. Когда я смотрю туда, я вижу свои тестовые классы и мои предварительно отфильтрованные ресурсы (и не ресурсы, которые я явно скопировал, прежде чем обрабатывать тестовые ресурсы). Кажется, они просто были скопированы из src/test/resources. Это ожидаемое поведение? Кроме того, почему тестовые классы и ресурсы помещаются в rootProject/out/rootProject, в отличие от значений по умолчанию для градиентов rootProject/targetProject/build/...?

ответ

1

Когда вы строите IDEA, Gradle не участвует. Это IDEA, который копирует ресурсы и компилирует код. Вы можете добавить ресурсы, созданные с помощью Gradle, в сборку IDEA, но вам нужно самостоятельно выполнить соответствующие задачи Gradle или настроить конфигурации запуска IDEA для вызова задач. (Я не могу найти компилятор в IDEA.)

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