我正在开发一个游戏!2 生成一些 html/js 小部件的应用程序,这些小部件将嵌入到第三方网站中。它们的链接是动态的,因此我不能拥有静态测试文件。
我如何才能拥有仅在测试模式下工作的测试视图(以及到这些视图的路由),以便我可以使用 Selenium 进行测试。
基本上我想将 testView1.scala.html、testView1.scala.html 添加到 test/views 并有路由到那个,但不希望这些在生产模式下工作。有什么好的方法呢?
我正在开发一个游戏!2 生成一些 html/js 小部件的应用程序,这些小部件将嵌入到第三方网站中。它们的链接是动态的,因此我不能拥有静态测试文件。
我如何才能拥有仅在测试模式下工作的测试视图(以及到这些视图的路由),以便我可以使用 Selenium 进行测试。
基本上我想将 testView1.scala.html、testView1.scala.html 添加到 test/views 并有路由到那个,但不希望这些在生产模式下工作。有什么好的方法呢?
我不确定这是否是最好的方法,但我会这样做。
当我回到家时,我会添加一些代码来支持,但这是我会使用的一般工作流程。
希望能帮助到你。
简单...(现在有几年的时间来回答..)。有点类似于@mbseid 的回答:
将您的/conf/routes重命名为/conf/prod.routes ,并在/conf/application.conf中指定它:
play.http.router = prod.Routes
创建一个测试路由文件,例如/conf/test.routes,它公开仅测试路由并将其余路由委托给 prod 路由。
/test/only/something controllers.testonly.TestOnlySomethingController.someMethod()
-> / prod.Routes
确保您的仅测试控制器与其他控制器位于不同的包中。
当您启动测试应用程序时覆盖play.http.router,例如:
sbt run -Dplay.http.router=test.Routes
它在微服务环境中是一种有用的模式,通过集成测试来公开未公开的数据。
注意,play.http.router在 v2.5+ 之前被称为application.router