0

我有一个数据集(在 xml 中定义),我正在使用 PostGreSQL、用 JPA 注释的 POJO 和带有 Junit 的 DbUnit 进行测试。

测试运行时,它会在数据库中创建表和序列,但是当它开始使用表定义和列读取数据集 (xml) 时,它会触发以下错误 org.dbunit.dataset.NoSuchTableException "nameoftable" 我试过将表格名称全部大写和正常大写,它将不起作用。该表是在公共模式中创建的,然后我尝试在 xml 中将表定义为 public."nameoftable" 但它也不起作用....有什么想法吗?

我尝试在以下版本中使用 DUnit 运行此测试:2.2.2、2.3.0 和 2.4.5。

谢谢。

4

1 回答 1

1

使用 DBUnit,您可以使用特定的模式进行测试,也可以使用完整的数据库(可能具有多个模式)。如果使用后者,则需要在导入/导出时指定数据集中的模式,否则可能会混淆;至少在 PostgreSQL 中,我没有尝试过其他任何东西。

要强制执行此操作,请添加以下代码:

if (strSchema == null || strSchema.isEmpty()) {
    conn = new DatabaseConnection(jdbcConnection);
    conn.getConfig().setProperty(
            "http://www.dbunit.org/features/qualifiedTableNames", true);
}
else
    conn = new DatabaseConnection(jdbcConnection, strSchema);

重要的是属性的设置;其余的是我用来建立与数据库或模式相关的连接(基于从休眠配置 XML 中提取的模式名称)。

于 2011-05-21T14:33:45.513 回答