Я пытаюсь провести интеграционное тестирование приложения Play, являющегося компонентом более крупной системы.Это приложение представляет собой некоторую комбинацию REST и MVC и имеет много зависимостей, поэтому их макет будет чрезвычайно утомительным.Вся система Dockerized.Мне также нужно проверить перенаправления в представлениях - например, если пользователь посещает представление без правильных разрешений, его нужно перенаправить в другое конкретное представление.
С учетом того, что я хотел бы сделать, это:
1) создайте образ, используя docker:publishLocal
с флагом, который заменит мои каталоги app/public
и app/views
заполнителями (представления в некотором структурированном формате, например, JSON).
2) принесетвся система работает с docker-compose.
3) запустите несколько скриптов, которые тестируют мое приложение.
Моя проблема в два раза:
Во-первых, sbt, похоже, игнорируетпуть, который я установил в build.sbt sourceDirectories in (Compile, TwirlKeys.compileTemplates) := Seq(file("/me/some/path/MyProject/test/view"))
и по-прежнему компилирует шаблоны в /me/some/path/MyProject/app/view
А во-вторых, как я могу переключить каталог представлений, используя флаг, то есть в псевдокоде добавить в build.sbt что-то вроде
if (myFlag == "integration-test"){
sourceDirectories in (Compile, TwirlKeys.compileTemplates) := Seq(file("/me/some/path/MyProject/test/view"))
version += "-test"
}