Я разрабатываю проект Scala в IntelliJ IDEA (репозиторий GitHub). Проект создан с помощью Gradle 4.3 и использует ScalaTest плюс последний подключаемый модуль Gradle для тестирования (id 'com.github.maiflai.scalatest' version '0.19'
). Версия плагина Scala — 2017.3.11.1.
Проект имеет два уровня иерархии: родительский проект на корневом уровне и подпроекты в качестве дочерних. В тестах используются входные файлы, расположенные на корневом уровне (например, проект каталога ./compiler/
использует файлы из каталога ./queries/
). Тесты относятся к файлам с относительными путями: например, если компилятор использует файлы запросов, он обращается к ним как ../queries/query-file.ext
.
С такой настройкой тесты нормально работают из командной строки при запуске ./gradlew test
. Однако, когда я запускаю новую тестовую форму IntelliJ, рабочий каталог всегда устанавливается на корневой уровень, что прерывает тесты. (Конечно, это можно исправить вручную, но это нужно делать для каждого выполненного теста). Обратите внимание, что я импортировал проект в IntelliJ IDEA, используя параметр «Создать отдельный модуль для каждого исходного набора» (из-за проблема SCL-12718, которая еще не исправлена в стабильной версии, и я не уверен, решит ли это проблему).
Есть ли способ исправить или обойти это? Обновление конфигурации ScalaTest Gradle для использования каталога текущего подпроекта или перенастройка IntelliJ для использования каталога родительского проекта будет работать для меня.