Я пытаюсь запустить свои тестовые примеры в идее 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/...?