IntelliJ не может найти ресурс тестирования classpath
У меня возникла проблема, когда IntelliJ 13.1.4 при запуске unit test не может найти файл ServiceLoader
в каталоге src/test/resources
моего модуля.
Обратите внимание, прежде чем ответить, что я выполнил все следующие действия:
- Модуль представляет собой проект Gradle, и если я запустил
gradle test
, unit test работает нормально.
- Я успешно использовал этот unit test в IntelliJ в прошлом, и он нашел модуль. (Возможно, более ранняя версия IntelliJ?)
- Я дважды проверял параметры модуля IntelliJ, а каталог
src/test/resources
помечен как каталог тестовых ресурсов. (См. Снимок экрана ниже.)
- Я сбрасываю класс класса classloader класса unit test класса; он имеет каталоги
build/classes/test/
и build/classes/java
, но ни build/resources/test/
, ни build/resources/main/
.
- Я нажал кнопку, чтобы обновить все проекты Gradle.
Любые идеи о том, что еще может привести к тому, что IntelliJ потерпит неудачу здесь?
Снимок экрана конфигурации моего модуля, показывающий настройки тестовых ресурсов.
![My Test Resource Folders is correctly set.]()
Ответы
Ответ 1
Мне удалось улучшить работу, создав каталог test-resources
, параллельный директории test
(!).
Тем не менее, все еще видят проблемы с этим. В те времена можно было бы открыть настройки проекта IntelliJ и определить тестовые ресурсы как источник (проект Gradle останется без изменений).
Должен быть ошибкой IntelliJ, так как я испытал то же самое в Android Studio.
EDIT:
I нашел обходное решение в этой проблеме.
Добавьте следующее в конец конфигурации Gradle (и укажите путь к тестовым ресурсам):
task copyTestResources(type: Copy) {
from "${projectDir}/src/test/resources"
into "${buildDir}/classes/test"
}
processTestResources.dependsOn copyTestResources
Ответ 2
Я сталкиваюсь с аналогичной проблемой с IntelliJ 14. Несмотря на наличие необходимых файлов в моей папке ресурсов и обеспечение того, что папка указана как ресурс в настройках модуля, IntelliJ с перерывами не может загрузить мои файлы в путь к классам.
Одним из способов является добавление требуемой папки в качестве зависимости для модуля в настройках модуля.
![введите описание изображения здесь]()
Сначала нажмите кнопку "+", чтобы добавить новую зависимость.
![введите описание изображения здесь]()
Затем выберите папку, которую вы хотите добавить в путь к классам.
![введите описание изображения здесь]()
Затем выберите опцию "classes".
![введите описание изображения здесь]()
Как только это будет сделано, перестройте свой модуль один раз и, надеюсь, это должно сделать трюк.
В идеале это не должно быть проблемой. Все файлы в папке ресурсов должны быть непосредственно помещены в путь к классам. Однако в каждой среде IDE есть свои причуды.