gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 08:53:38 24 4
gpt4 key购买 nike

每当我在网站上运行自动化测试时,所有表都会被清理为 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

这是默认设置 - 它表示当应用程序在测试模式下运行时,使用内存数据库。如果您希望测试在持久数据上运行(不推荐),您可以更改测试模式数据库设置。请参阅Play test documentation了解详情。

关于unit-testing - 当您运行单元测试时,Play Framework 会自动删除数据库中的所有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6587945/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com