问题标签 [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.
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 变化
- 改进问题内容
- 添加了 Bitbucket 存储库
postgresql - DBUnit & Postgres UUID 主键
我正在尝试使用 DBUnit 运行集成测试,但是我发现自己无法插入主键列,这显然不适用于稍后在文件中引用主键的外键。
例如,我有以下 DDL:
DBUnit 设置 XML 如下所示:
当我尝试运行测试时,我得到了失败:
这是正在运行的测试:
显示的此错误似乎与潜在问题没有直接关系。如果我attribute_id
从 XML 中删除该列,则会插入记录。
java - @DatabaseSetup 无法加载数据集
我通过 java config 配置了我的测试环境。在我的测试中,我需要一些预先的数据来运行它,但是当我使用@DatabaseSetup
注释运行测试时,我总是得到错误
该文件位于src/test/resources/personTestData.xml
. 出于好奇,我将文件移动到测试本身所在的同一个包中,仍然是同样的错误。
我花了无数个小时在网上搜索错误,直到现在还没有解决方案。
更新
我使用的组件和版本:
我的 xml
我的测试用例
堆栈跟踪,为数据库的 init 截断
spring - 休眠 statelessSession 的 DBUnit 问题
我正在尝试使用 Spring 和 DBunit ( http://springtestdbunit.github.io/ )测试我的代码
一旦进入单元测试:
将返回由 DBUnit 插入的实体列表,因此它确实在数据库 (MYSQL) 中插入了记录。
但:
将返回错误!它无法使用无状态会话找到任何记录。
之前,我使用 Liquibase 插入相同的记录,这段代码运行良好。
使用 HSql 更糟糕的是,它在尝试打开无状态会话时完全冻结......(在 scroll() 指令上......)
谢谢您的帮助!
dbunit - org.dbunit.dataset.NoSuchTableException:加载数据集以查看时
我期待将 dbUnit 集成到一个项目中。该项目有Spring,没有ORM。在将 XML 数据集加载到数据库时,我得到 org.dbunit.dataset.NoSuchTableException: XXX_VW "XXX_VW" is a db view。但是,我可以将数据集加载到任何表中。我已经在 db 中确认了所需的视图退出并且元数据是相似的。
下面是我在测试的设置方法中执行的代码。
知道可能是什么问题吗?
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 是否启动并正常工作?
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
spring - DBUnit 会改变数据库的实际状态吗?
例如,在我为实际数据库设置数据源并使用@DatabaseSetup 将其设置为状态后,会发生以下哪一个?
1) DBUnit 连接到实际数据库,删除所有内容,插入@DatabaseSetup 中指定的记录,测试用例然后回滚。
2)DBUnit以某种方式基于数据源创建一个内存数据库,设置内存数据库。实际数据库中没有任何变化。
3)魔术。
DBUnit 是如何工作的?谢谢。
spring - @DatabaseSetup 和 @BeforeTransaction Spring DBUnit 和 Spring Transaction 的优先级
我有一个 JUnit 测试,我在其中使用Spring Test DBUnit和Spring declarative transaction management。如果我用@Transactional(它将利用@BeforeTransactional 来验证数据库状态)和@DatabaseSetup(将数据库状态设置为我想要的)标记一个测试方法,哪个优先?是先设置数据库,然后@BeforeTransactional 会检查它,还是会在设置后进行检查?这是一些代码:
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 将它们变成大写,有没有办法防止这种情况发生?
我试过用谷歌搜索它,但到目前为止唯一符合我的问题的是这个,但我真的不喜欢恢复到旧版本。
有什么提示吗?我不敢相信这是一个严重的问题,而不仅仅是我忽略了一些东西......