2016-10-27 101 views
0

我试图在将它放到生产服务器上后测试我的play 2.5应用程序。基本上我只想运行与生产服务器设置一起在我的ApplicationSpec.scala中编写的相同测试。我跟着文档,但无法创建应用程序实例:如何编写生产服务器测试与OneServerPerSuite一起玩

import play.api.test.Helpers.{GET => GET_REQUEST, _} 
import play.api.test._ 

class ProductionSpec extends PlaySpec with OneServerPerSuite { 

    implicit override lazy val app = 
    new GuiceApplicationBuilder().disable[EhCacheModule].router(Router.from { 
     case GET(p"/") => Action { play.api.mvc.Results.Ok("ok") } 
    }).build() 
    "AuthController" should { 

     "initialize tables" in { 
     val init = route(app, FakeRequest(GET, "/init")).get 
     status(init) mustBe OK 
     } 
    } 
} 

误差

ProductionSpec.scala:25: not found: value GET 
... 
ProductionSpec.scala:25: value p is not a member of StringContext 

如何测试应用程序的生产环境中运行?

回答

0

的问题是,混合GETs,你也正在测试中的一条路径,并请求其他

首先,你有两个GETs(一个在每个库)

play.api.test.Helpers._

play.api.routing.sird._

第二次初始化此路线GET(p"/")但您要求这一个route(app, FakeRequest(GET, "/init")).get

我固定的代码和它的作品

import org.scalatestplus.play._ 
import play.api.test._ 
import play.api.test.Helpers._ 

import play.api.mvc._ 
import play.api.inject.guice.GuiceApplicationBuilder 
import play.api.routing._ 
import play.api.routing.sird._ 
import play.api.cache.EhCacheModule 
import play.api.libs.ws.WSClient 

class ProductionSpec extends PlaySpec with OneServerPerSuite { 

    implicit override lazy val app = 
    new GuiceApplicationBuilder().disable[EhCacheModule].router(Router.from { 
     case play.api.routing.sird.GET(p"/init") => Action { play.api.mvc.Results.Ok("ok") } 
    }).build() 
    "AuthController" should { 

     "initialize tables" in { 
     val init = route(app, FakeRequest(play.api.test.Helpers.GET, "/init")).get 
     status(init) mustBe OK 
     } 
    } 
} 

你应该知道何时使用每个GET

我希望这有助于

相关问题