Unit testing 运行单元测试时,Play Framework会自动删除数据库中的所有记录

Unit testing 运行单元测试时,Play Framework会自动删除数据库中的所有记录,unit-testing,playframework,Unit Testing,Playframework,每当我在我的站点上运行自动测试时,所有表都会被清理到0行。这是故意的吗?我如何预防它们 更新:找到真正的“罪犯” %test.jpa.ddl=通过设计创建。单元测试不应该对某些预先存在的状态(如持久化数据)有任何外部依赖关系。如果出于测试目的需要数据,则需要在@Before设置方法中进行设置。例如: @Before public void setUp() { // The following loads test data from the YAML file Fixtures.

每当我在我的站点上运行自动测试时,所有表都会被清理到0行。这是故意的吗?我如何预防它们

更新:找到真正的“罪犯”
%test.jpa.ddl=通过设计创建。单元测试不应该对某些预先存在的状态(如持久化数据)有任何外部依赖关系。如果出于测试目的需要数据,则需要在
@Before
设置方法中进行设置。例如:

@Before
public void setUp() {
    // The following loads test data from the YAML file
    Fixtures.loadModels("test-data/users.yml");
}

@Test
public void someTest() {
    assertEquals(5, User.count()); // 5 User records exist due to @Before method
}
您应该查看conf/application.conf文件,注意有一行内容如下:

%test.db=mem

这是默认设置,即当应用程序在测试模式下运行时,使用内存中的数据库。如果希望测试在持久数据上工作(不推荐),可以更改测试模式数据库设置。有关详细信息,请参阅。

在更新application.conf文件之前,我遇到了相同的问题:

%test.jpa.ddl=none

实际上,真正的“罪魁祸首”是%test.jpa.ddl=create