【问题标题】:How to use DBUnit with multiple databases / datasources in Spring如何在 Spring 中将 DBUnit 与多个数据库/数据源一起使用
【发布时间】:2016-07-28 00:49:42
【问题描述】:

我通过扩展类 DBTestCase 在基于 Spring 的测试用例中使用 DBUnit /strong> 在我的使用“SpringJUnit4ClassRunner”运行的测试类中。

一切正常,但是在我的实际应用程序中,表分散在多个 DB 模式 中,所以我有几个 datasource bean在我的 Spring Content XML 中定义。

所以在设置DBUnit时,我们需要重写newDatabaseTester方法,为其提供IDatabaseTester实例,而创建一个 'DataSourceDatabaseTester' bean 在构造函数中只需要一个单个数据源。

有谁知道在这种情况下设置 DBUnit 的正确方法,或者是否有一些我可以访问的示例项目已经实现了这个?谢谢!!

【问题讨论】:

    标签: java spring junit spring-test dbunit


    【解决方案1】:

    您可以看看https://github.com/springtestdbunit/spring-test-dbunit#working-with-multiple-connections 这个库有助于简化 DBUnit 测试的配置,并提供将数据集导入不同的数据源。

    【讨论】:

    • 谢谢,我已经看到了,看来这个库只有在你为数据集提供 XML 文件的情况下才有效;但是,我希望从另一个数据库(数据库集)查询数据集,因此每个数据源将使用另一个测试模式来查询数据。我还在看你,因为现在我别无选择。
    • 您可以扩展 AbstractDataSetLoader 并在 @DbUnitConfiguration(dataSetLoader = YourDataSetLoader.class) 中指定您的实现
    • 我也很欣赏小费,但这并不是那么简单。 AbstractDataSetLoader 为要覆盖的方法指定一个“资源”类型参数,抽象类检查是否有“resource.exists()”,因此我什至无法使用该字段发送表名。相反,我需要修改 AbstractDataSetLoader,太麻烦了。该项目是为 Java 8 设计的,所以它甚至不能编译,我需要一个旧版本。
    猜你喜欢
    • 2017-09-16
    • 1970-01-01
    • 2021-04-06
    • 2018-08-09
    • 2014-11-28
    • 2016-11-12
    • 2014-07-24
    相关资源
    最近更新 更多