Play框架2.0。在测试中使用替代的application.conf文件。

9
我的项目在生产环境中使用mysql。但是我正在尝试在测试中使用内存。
我创建了两个配置文件,一个是application.conf,另一个是application.test.conf(在同一目录下)。
我尝试进行以下操作:
play -Dconfig.file=conf/application.test.conf test-only

但它仍然使用默认的配置文件。 我想知道是否有人知道如何在测试期间使用不同的配置文件(或者至少在测试期间使用不同的数据库设置)。

1个回答

2
如果您是指单元测试,则只需添加


running(FakeApplication(additionalConfiguration = inMemoryDatabase())) { Test code... }

将您的测试放入内存中执行,无需更改配置文件。

1
谢谢,只是为了澄清其他人。你提供的语法是针对Scala的。在Java中,它是这样运行的(fakeApplication(inMemoryDatabase()),new Runnable(){)。 - hook38
啊,是的。我有一半的机会选对语言;) - Jakob
1
然而,如果生产数据库是MySQL,我们不应该针对MySQL数据库运行测试以确保没有特定于数据库的错误吗?特别是如果您通过Anorm或类似方式编写纯SQL。 - Pete
Pete,是的,这可能是一个问题。这取决于您的数据库结构有多复杂。但我的经验是,您可以通过这种方式做很多事情而不会遇到麻烦。 - Jakob
4
我认为这个答案更像是一种变通方法,它并没有回答原本的问题。 - Balázs Németh
我更喜欢避免多次指定“additionalConfiguration”。使用conf文件更加简洁。 - Khanetor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接