【发布时间】:2011-02-07 18:34:47
【问题描述】:
我正在尝试运行一些测试,每次运行 play 时都会清除数据库。我想这是由于我的 "test.jpa.ddl" 属性。
当前代码:
%test.jpa.ddl=create-drop
只是去掉这条线来解决问题吗?还是我需要设置另一个值? (我害怕再次测试并删除所有数据......)
【问题讨论】:
标签: java junit playframework
我正在尝试运行一些测试,每次运行 play 时都会清除数据库。我想这是由于我的 "test.jpa.ddl" 属性。
当前代码:
%test.jpa.ddl=create-drop
只是去掉这条线来解决问题吗?还是我需要设置另一个值? (我害怕再次测试并删除所有数据......)
【问题讨论】:
标签: java junit playframework
尝试设置一个值
test.jpa.ddl=none
假设您的 JPA 提供商正在这样做。
或者,您可以使用 DBUnit 进行单元测试。在这种情况下,它会在每次运行时清除您的数据。除了保存数据并在之后重新加载之外,真的没有其他办法。
【讨论】:
这取决于您的测试模式的其他设置。默认情况下,数据库设置为在内存中,所以这可能是您的问题。
另外,您使用的是 Fixtures 吗?如果不是,我强烈建议您使用 fixture,因为它允许您在 YAML 文件中指定测试数据,并在每个测试周期开始时重新加载它,从而保证数据的一致性。
【讨论】:
检查您是否正在使用 h2 db(默认情况下)。保存数据的最简单方法是评论这一行:
db=内存
把它改成
db=fs
如果您使用的是独立数据库(如 mysql),那么您肯定需要转到“jpa.ddl”。正如其他人所说,将其更改为“无”。
【讨论】: