playframework中的Scalatest和Anorm

playframework中的Scalatest和Anorm,playframework,scalatest,anorm,Playframework,Scalatest,Anorm,我正在做一个playframework项目,我们使用scalatest进行测试。我们还想做一些数据库测试。在conf/application.conf中,我们设置了一个数据库连接,但在启动测试时,这似乎被忽略了。我们如何配置它?您的测试需要在FakeApplication上下文中运行。您可以使用FunSpec像这样包装每个测试: describe("MyEntity") { it("should do something") { running(FakeApplication())

我正在做一个playframework项目,我们使用scalatest进行测试。我们还想做一些数据库测试。在conf/application.conf中,我们设置了一个数据库连接,但在启动测试时,这似乎被忽略了。我们如何配置它?

您的测试需要在FakeApplication上下文中运行。您可以使用FunSpec像这样包装每个测试:

describe("MyEntity") {
  it("should do something") {
    running(FakeApplication()) {
      MyEntity.findById(1L).value.name should be("some name")
    }
  }
}

如果您不想在每次测试中重复此操作,可以使用多种方法,请参阅scalatest文档以了解有关如何共享修复程序的信息:

play或play 2.0?重要的是,API的不同之处在于我如何使用.conf中定义的测试数据库,而不是这里描述的默认数据库:基本上,您使用附加配置映射传递额外配置:FakeApplicationadditionalConfiguration=inMemoryDatabase传递您自己的选项以覆盖与数据库相关的设置驱动程序,如果inMemoryDatabase不是您想要的,请连接url等。在conf/中添加一个新的test.conf,其中包括Application.conf,然后覆盖数据库设置。然后,您可以在运行测试时加载此配置文件,方法是将Test++=Seq-Dconfig.file=conf/Test.conf中的javaOptions添加到build.sbt中