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