我正在尝试集成测试作为较大系统组件的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"
}