标签: dbunit

DBUnit中的日志输出

我觉得这是我可以轻易搞清楚的,但我很难找到有关如何更改DBUnit日志级别的信息.任何人都可以为我解决这个问题吗?

dbunit

6
推荐指数
2
解决办法
7419
查看次数

为什么我应该避免使用DbUnit来测试MySQL?

我最近使用PHPUnit参与了一些TDD.我必须测试一个数据库驱动的应用程序,并阅读DbUnit扩展,我计划在未来几周内研究和实施.

然而,我自己也遇到了这个人的演讲 - 塞巴斯蒂安·贝格曼 - 他有一张标题为"如果可以的话,避免对MySQL进行测试"的幻灯片,这对我的逃避产生了一些怀疑.

有人可以解释我不应该针对MySQL进行测试的原因吗?

谢谢

tdd phpunit dbunit unit-testing

6
推荐指数
1
解决办法
3637
查看次数

POI从excel读取数字数据时附加.0

我正在使用POI HSSF来读取excel数据,我正在使用JUnit来检查数据库proc RefCursor的数据.

Junit测试失败,因为来自例如100的Refcursor的数值数据与excel表100中的数据进行比较,但它失败,因为POI将其读取为100.0.

        InputStream fileInputStream = Testdb.class.getClassLoader().getResourceAsStream(fileName);
        //retrieve number of columns and rows
        int numRows=0, numCols=0, i, j, minColIndex=0, maxColIndex=0;
        POIFSFileSystem fsFileSystem = new POIFSFileSystem(fileInputStream);
        HSSFWorkbook workBook = new HSSFWorkbook(fsFileSystem);
        HSSFSheet hssfSheet = workBook.getSheetAt(0);
        Iterator rowIterator = hssfSheet.rowIterator();
        while (rowIterator.hasNext())
        {
            numRows++;
            HSSFRow hssfRow = (HSSFRow) rowIterator.next();
            Iterator iterator = hssfRow.cellIterator();
            List cellTempList = new ArrayList();
            if (numRows == 1)
            {
                minColIndex = hssfRow.getFirstCellNum();
                maxColIndex = hssfRow.getLastCellNum();
                numCols = maxColIndex;
            }
            for(int colIndex = minColIndex; colIndex < maxColIndex; colIndex++) …
Run Code Online (Sandbox Code Playgroud)

java oracle junit dbunit apache-poi

6
推荐指数
1
解决办法
4179
查看次数

在DBUnit中重置序列?

我希望在Java + DBUnit /中的每次测试后重置数据库AND序列.

我已经看到了这个问题,但没有我正在努力获得的代码解决方案. 如何在DBUnit中使用Oracle序列号?

java dbunit

6
推荐指数
2
解决办法
4796
查看次数

是否有适用于MongoDB的DbUnit替代方案?

我正在开发一个使用Spring Data和MongoDB来管理持久层的项目.我遇到了使用我的集成和单元测试应该操作的数据填充一些MongoDB集合的需求.目前我正在使用TestNG(和Spring Test)进行测试.

是否有像DbUnit这样的工具可以与MongoDB一起使用?

基本上我希望这样的工具可以从xml文件中读取文档并在MongoDB集合中编写这样的文档.

或者我错过了一些明显的东西,比如这种需求的最佳实践?

java dbunit unit-testing mongodb spring-data-mongodb

6
推荐指数
1
解决办法
2610
查看次数

DbUnit无法清理插入:外键约束

我正在询问并回答这个问题以供将来参考,因为我认为我找到了一个解决DbUnit常见问题的合适解决方案.我希望它能帮到某个人,某个地方.

我正在使用DbUnit 2.5.0TestNG 6.8.8.我的用例是包含3个实体的数据库的一部分.有一个ServiceUser持有a Administrable和a 的外键UserGroup.

我按照http://city81.blogspot.com/2011/03/testing-jpa-entities-using-dbunit.html上的大部分代码示例进行了操作.

public abstract class AbstractDatabaseTest {
    protected EntityManager em; // initialized elsewhere
    private IDatabaseConnection connection;
    private IDataSet dataset;

    @BeforeClass
    private void setupDatabaseResource() throws Exception {
        // using Hibernate
        connection = new DatabaseConnection(((SessionImpl) (em.getDelegate())).connection());
        connection.getConfig().setProperty(DatabaseConfig.PROPERTY_DATATYPE_FACTORY, new HsqldbDataTypeFactory());

        // full database export
        IDataSet fullDataSet = connection.createDataSet();

        final String datasetPath = String.format("%s%s", RESOURCE_FOLDER, "Testing.xml");
        FlatXmlDataSet.write(fullDataSet, new FileOutputStream(datasetPath));

        FlatXmlDataSetBuilder flatXmlDataSetBuilder = new FlatXmlDataSetBuilder();
        flatXmlDataSetBuilder.setColumnSensing(true);
        dataset = flatXmlDataSetBuilder.build(new …
Run Code Online (Sandbox Code Playgroud)

java mysql testng dbunit jpa

6
推荐指数
1
解决办法
7568
查看次数

DBUnit布尔值

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

<?xml version="1.0" encoding="UTF-8"?>
<dataset>
    <Client code="0001" name="client_one" />
    <Client code="0002" name="client_two" />
    <Client code="0003" name="client_three" active="false" />
    <Client code="0004" name="client_four" />
</dataset>
Run Code Online (Sandbox Code Playgroud)

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

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

问题是如何使用上面的数据集成功进行集成测试?截至目前,我很难实现解决方案,所以我创建了一个Bitbucket存储库供您查看和帮助.


更新日志

  • 2015/02/04变更

    1. 改善问题内容
    2. 添加了Bitbucket存储库

postgresql dbunit spring-test spring-test-dbunit

6
推荐指数
1
解决办法
662
查看次数

预期 JUnit、Spring 和 HIbernate 出现数据库异常

我使用 spring 3.0.7、JUnit 4.11 和 DBUnit 2.4.9。我正在尝试在保存未指定多对一关系的实体(设置为空)时测试拖曳异常。这是实体:

<class name="DistributionPoint" table="distribution_point">
        <id name="id" unsaved-value="null" type="java.lang.Long">
            <column name="id"></column>
            <generator class="hilo"></generator>
        </id>

        <property name="name" type="java.lang.String">
            <column name="name" length="255"></column>
        </property>
        <property name="description" type="java.lang.String">
            <column name="description" length="1024"></column>
        </property>

        <property name="image" type="binary">
            <column name="image"></column>
        </property>

        <many-to-one name="site" class="Site">
            <column name="siteId" not-null="true"></column>
        </many-to-one>

    </class>
Run Code Online (Sandbox Code Playgroud)

我创建了以下测试:

@TransactionConfiguration(defaultRollback=false, transactionManager="transactionManager")
//@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:/spring/mysql-test-context.xml" })
public class MysqlDistributionPointTest extends AbstractDatabaseTest {
Run Code Online (Sandbox Code Playgroud)

AbstractDatabaseTest 扩展了 AbstractTransactionalJUnit4SpringContextTests。

测试方法为:

@Test(expected=org.hibernate.PropertyValueException.class)
    public void testSaveWithoutSite() {
        // set up DP
        DistributionPoint distributionPoint = new DistributionPoint(); …
Run Code Online (Sandbox Code Playgroud)

java junit spring dbunit hibernate

5
推荐指数
1
解决办法
2817
查看次数

Spring Test DBUnit 和表模式名称

@DatabaseSetup使用Spring Test DBUnit 的注释时是否可以设置表模式名称?目前我正在这样使用它:

@DatabaseSetup("user-data.xml")
public class UserMapperTest {
}
Run Code Online (Sandbox Code Playgroud)

user-data.xml:(我也尝试将元素名称设置为 user.system_user 但没有任何运气)

<dataset>
    <system_user
        ...
        />
</dataset>
Run Code Online (Sandbox Code Playgroud)

在这里,我使用名为 user 的模式创建表:

create table "user".system_user (...);
Run Code Online (Sandbox Code Playgroud)

这是我在运行测试时遇到的异常:

org.h2.jdbc.JdbcSQLException: Table "SYSTEM_USER" not found; SQL statement:
delete from SYSTEM_USER [42102-175]
Run Code Online (Sandbox Code Playgroud)

java dbunit spring-test-dbunit

5
推荐指数
1
解决办法
1万
查看次数

dbUnit 支持 Postgresql 数组

我正在为数据库组件编写一些单元测试。为此,我使用了专用的测试数据库(Postgresql,与生产数据库相同)和 dbUnit。

现在我想创建我整个测试数据库的 XML 转储。我目前使用dbUnitFAQ 页面中的代码

IDatabaseConnection connection = new DatabaseConnection(conn);
connection.getConfig().setProperty("http://www.dbunit.org/properties/datatypeFactory", new PostgresqlDataTypeFactory());
IDataSet fullDataSet = connection.createDataSet();
FlatXmlDataSet.write(fullDataSet, new FileOutputStream("full.xml"));
Run Code Online (Sandbox Code Playgroud)

这一切都很好,除了Array类型的列。dbUnit 只是将它们排除在外。我希望通过添加PostgresqlDataTypeFactory来修复它,但这不会改变任何事情。

有人知道如何在 dbUnit 中添加对 postgresql 数组的支持吗?

java arrays postgresql dbunit

5
推荐指数
1
解决办法
1354
查看次数