问题标签 [spring-test-dbunit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
839 浏览

postgresql - DBUnit 布尔值

在学习了 SpringBoot 之后,我想进一步使用(DBUnit 和 SpringTestDBUnit)处理集成测试。在整个过程中,一切都很顺利,直到我遇到了为数据集上的布尔数据类型列设置值。(数据集内容如下)

active="false"属性添加到客户端记录 [code=0003],我的集成测试失败并向我显示这条消息,该消息Exception processing table name='Client'导致客户端记录 [code=0001] 违反了活动的非空列约束。

通过为所有记录上的活动列提供值(这有点偏离规范)来修复错误(在分支DBUnit_For_Boolean_Columns_Attempt_One上)后,它起作用了。但是我的目标能够使用上面编写的数据集成功运行集成测试。

问题是如何使用上面的数据集成功进行集成测试?到目前为止,我很难实施解决方案,因此我创建了一个Bitbucket 存储库供您查看和帮助。


变更日志

  • 2015/02/04 变化

    1. 改进问题内容
    2. 添加了 Bitbucket 存储库
0 投票
3 回答
2133 浏览

postgresql - DBUnit & Postgres UUID 主键

我正在尝试使用 DBUnit 运行集成测试,但是我发现自己无法插入主键列,这显然不适用于稍后在文件中引用主键的外键。

例如,我有以下 DDL:

DBUnit 设置 XML 如下所示:

当我尝试运行测试时,我得到了失败:

这是正在运行的测试:

显示的此错误似乎与潜在问题没有直接关系。如果我attribute_id从 XML 中删除该列,则会插入记录。

0 投票
1 回答
9279 浏览

java - @DatabaseSetup 无法加载数据集

我通过 java config 配置了我的测试环境。在我的测试中,我需要一些预先的数据来运行它,但是当我使用@DatabaseSetup注释运行测试时,我总是得到错误

该文件位于src/test/resources/personTestData.xml. 出于好奇,我将文件移动到测试本身所在的同一个包中,仍然是同样的错误。

我花了无数个小时在网上搜索错误,直到现在还没有解决方案。

更新

我使用的组件和版本:

我的 xml

我的测试用例

堆栈跟踪,为数据库的 init 截断

0 投票
3 回答
233 浏览

spring - 休眠 statelessSession 的 DBUnit 问题

我正在尝试使用 Spring 和 DBunit ( http://springtestdbunit.github.io/ )测试我的代码

一旦进入单元测试:

将返回由 DBUnit 插入的实体列表,因此它确实在数据库 (MYSQL) 中插入了记录。

但:

将返回错误!它无法使用无状态会话找到任何记录。

之前,我使用 Liquibase 插入相同的记录,这段代码运行良好。

使用 HSql 更糟糕的是,它在尝试打开无状态会话时完全冻结......(在 scroll() 指令上......)

谢谢您的帮助!

0 投票
1 回答
870 浏览

dbunit - org.dbunit.dataset.NoSuchTableException:加载数据集以查看时

我期待将 dbUnit 集成到一个项目中。该项目有Spring,没有ORM。在将 XML 数据集加载到数据库时,我得到 org.dbunit.dataset.NoSuchTableException: XXX_VW "XXX_VW" is a db view。但是,我可以将数据集加载到任何表中。我已经在 db 中确认了所需的视图退出并且元数据是相似的。

下面是我在测试的设置方法中执行的代码。

知道可能是什么问题吗?

0 投票
1 回答
663 浏览

java - 如何使用数据库单元初始化 DB(在语句中找不到表)?

我有一个简单的 spring 项目并尝试使用spring-dbunit进行一些服务测试。我使用jdbcTemplate进行数据库访问。豆类配置:

测试类看起来像:

Cars.xml 是一个简单的数据集:

我必须在配置中出错,但是当调用 carService.sizeInGarage() 我看到消息:

org.springframework.jdbc.BadSqlGrammarException: StatementCallback; 错误的 SQL 语法 [SELECT count( ) FROM car]; 嵌套异常是 java.sql.SQLException: Table not found in statement [SELECT count( ) FROM car]

我应该在运行测试之前初始化数据库还是问题出在@DatabaseSetup并且找不到 xml 文件?如何检查 hsqldb 是否启动并正常工作?

0 投票
2 回答
6957 浏览

spring - Spring Test DBUnit: Unable to load dataset from file

I'm trying to use Spring Test DBUnit for running an integration test that checks if a DAO's services are running correctly. For two similar entities, I was able to create tests that run OK, but for this particular entity, the test can't run properly.
The test will be ignored, and the only Exception I will see in the console is:

Here are the relevant files. XML file:

Test class that is failing:

Abstract test class, that extends from TestNG's class:

Finally, the Entity:

Just a sidenote: I have "obscured" the Entity name (dammned lawyers!), so there could be some small name mistakes. Please bear with me on this ;)
If you need some additional details, please let me know.
Thanks in advance

0 投票
1 回答
257 浏览

spring - DBUnit 会改变数据库的实际状态吗?

例如,在我为实际数据库设置数据源并使用@DatabaseSetup 将其设置为状态后,会发生以下哪一个?

1) DBUnit 连接到实际数据库,删除所有内容,插入@DatabaseSetup 中指定的记录,测试用例然后回滚。

2)DBUnit以某种方式基于数据源创建一个内存数据库,设置内存数据库。实际数据库中没有任何变化。

3)魔术。

DBUnit 是如何工作的?谢谢。

0 投票
0 回答
370 浏览

spring - @DatabaseSetup 和 @BeforeTransaction Spring DBUnit 和 Spring Transaction 的优先级

我有一个 JUnit 测试,我在其中使用Spring Test DBUnitSpring declarative transaction management。如果我用@Transactional(它将利用@BeforeTransactional 来验证数据库状态)和@DatabaseSetup(将数据库状态设置为我想要的)标记一个测试方法,哪个优先?是先设置数据库,然后@BeforeTransactional 会检查它,还是会在设置后进行检查?这是一些代码:

0 投票
1 回答
1771 浏览

postgresql - 具有 Postgresql 和列名区分大小写的 DBUnit - 它是如何工作的?

我正在尝试为我们的 Spring Boot 应用程序编写集成测试。我们想使用 spring-test-dbunit 和 dbunit 在具有空模式的 Postgresql 9.4.2 数据库上设置和拆卸测试数据。

在努力解决不区分大小写的表名之后,我可以通过将 DBUnit 配置属性caseSensitiveTableNames设置为 true 来轻松解决,我现在在列名方面遇到了完全相同的问题,但我无法弄清楚如何让 DBUnit 理解 Postgresql 没有与大写顺利。

这是我的(简化的)数据集:

到目前为止,这是我的基本测试用例:

最后这是我到目前为止的 DBUnit 配置:

运行测试最终会出现此错误:

org.dbunit.dataset.NoSuchColumnException: customer_status.DESCRIPTON - ColumnNameToIndexes 缓存映射中的(非大写输入列:descripton)。请注意,地图的列名不区分大小写。

这是正确的,因为 PSQL 中的所有列名都是小写的。为什么 DBUnit 将它们变成大写,有没有办法防止这种情况发生?

我试过用谷歌搜索它,但到目前为止唯一符合我的问题的是这个,但我真的不喜欢恢复到旧版本。

有什么提示吗?我不敢相信这是一个严重的问题,而不仅仅是我忽略了一些东西......