【问题标题】:Testing jpa ddl types测试 jpa ddl 类型
【发布时间】:2011-02-07 18:34:47
【问题描述】:

我正在尝试运行一些测试,每次运行 play 时都会清除数据库。我想这是由于我的 "test.jpa.ddl" 属性。

当前代码:

%test.jpa.ddl=create-drop

只是去掉这条线来解决问题吗?还是我需要设置另一个值? (我害怕再次测试并删除所有数据......)

【问题讨论】:

    标签: java junit playframework


    【解决方案1】:

    尝试设置一个值

    test.jpa.ddl=none
    

    假设您的 JPA 提供商正在这样做。

    或者,您可以使用 DBUnit 进行单元测试。在这种情况下,它会在每次运行时清除您的数据。除了保存数据并在之后重新加载之外,真的没有其他办法。

    【讨论】:

      【解决方案2】:

      这取决于您的测试模式的其他设置。默认情况下,数据库设置为在内存中,所以这可能是您的问题。

      另外,您使用的是 Fixtures 吗?如果不是,我强烈建议您使用 fixture,因为它允许您在 YAML 文件中指定测试数据,并在每个测试周期开始时重新加载它,从而保证数据的一致性。

      【讨论】:

        【解决方案3】:

        检查您是否正在使用 h2 db(默认情况下)。保存数据的最简单方法是评论这一行:

        db=内存

        把它改成

        db=fs

        如果您使用的是独立数据库(如 mysql),那么您肯定需要转到“jpa.ddl”。正如其他人所说,将其更改为“无”。

        【讨论】:

          猜你喜欢
          • 2012-04-16
          • 2016-01-03
          • 1970-01-01
          • 2011-09-12
          • 2019-03-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-02-25
          相关资源
          最近更新 更多