2017-08-30 24 views
0

为了做一些功能测试,需要假应用程序来运行。为了使所有测试独立,虚拟应用程序需要在每次安装测试时使用干净的数据库。为了做到这一点,我的文件上发现,理想的方式是使用内存数据库是这样的:如何在java play 2.5中使用inmemory数据库创建假应用程序?

@Before 
public void before() { 
    app = fakeApplication(inMemoryDatabase()); 
    start(app); 

    initializeData(); 
} 

@After 
public void after() { 
    stop(app); 

} 

这里的问题是,它并没有将模式设置为MYSQL,因为正常的数据库是一个MYSQL数据库。为了设置此模式,必须添加选项。这是使用下面的代码完成的。请注意,“test”是数据库的名称(不同于“默认”以避免混淆)。

app =fakeApplication(inMemoryDatabase("test", ImmutableMap.of("MODE", "MYSQL"))); 

但是这个代码不奇怪的东西:它使用默认的数据库(这甚至不是一个内存数据库)中application.conf配置于是我改变了代码如下:

app =fakeApplication(inMemoryDatabase("default", ImmutableMap.of("MODE", "MYSQL"))); 

但这没有做什么:它仍然说MODE MYSQL没有设置。

有人可以帮助我吗?

对于框架java play 2.5被使用。

回答

0
+0

我也尝试过,但是我无法连接到数据库。我使用了app = fakeApplication(ImmutableMap.of(“db.default.url”,database.getUrl(),“db.default.driver”,“org.h2.Driver”,“db.default.username”,“” “db.default.password”, “”));和在文档中提供的代码,但数据库未设置为MYSQL,因为它“SQL语句中的语法错误”崩溃[*]#“ –

相关问题