0

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

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

DataSource dc = (MCDataSource) context.getBean("dataSource");
            databaseTester = new DataSourceDatabaseTester(dc, dc.getUsername());
            DatabaseConfig config = databaseTester.getConnection().getConfig();
            config.setProperty(DatabaseConfig.PROPERTY_TABLE_TYPE, new String[]{"TABLE", "VIEW"});
            databaseTester.setDataSet(this.getDataSet());
            databaseTester.setTearDownOperation(DatabaseOperation.DELETE_ALL);
            databaseTester.onSetup();

知道可能是什么问题吗?

4

1 回答 1

0

而是在 OperationListener 的生命周期方法中实现和 setOperationListener 并执行 setProperty。

    databaseTester.setOperationListener(new IOperationListener() {

        @Override
        public void operationTearDownFinished(IDatabaseConnection connection) {
            // TODO Auto-generated method stub

        }

        @Override
        public void operationSetUpFinished(IDatabaseConnection connection) {
            // TODO Auto-generated method stub

        }

        @Override
        public void connectionRetrieved(IDatabaseConnection connection) {
            DatabaseConfig config = connection.getConfig();
            config.setProperty(DatabaseConfig.PROPERTY_TABLE_TYPE, new String[]{"TABLE", "VIEW"});
    databaseTester.setDataSet(this.getDataSet());
    databaseTester.setTearDownOperation(DatabaseOperation.DELETE_ALL);
    databaseTester.onSetup();
于 2015-04-29T09:08:20.090 回答