我在最新的2.4.8版本中使用DbUnit,我在单元测试中收到了很多警告,消息如下:
WARN : org.dbunit.dataset.AbstractTableMetaData -
Potential problem found: The configured data type factory
'class org.dbunit.dataset.datatype.DefaultDataTypeFactory'
might cause problems with the current database 'MySQL' (e.g. some datatypes may
not be supported properly). In rare cases you might see this message because the
list of supported database products is incomplete (list=[derby]). If so please
request a java-class update via the forums.If you are using your own
IDataTypeFactory extending DefaultDataTypeFactory, ensure that you override
getValidDbProducts() to specify the supported database products.
因此,我想添加以下内容(我使用MySQL数据库):
protected void setUpDatabaseConfig(DatabaseConfig config) {
config.setProperty(DatabaseConfig.PROPERTY_DATATYPE_FACTORY, new MySqlDataTypeFactory());
}
但这无助于避免这些警告。这是怎么回事?
提前感谢你,并向你致以最好的问候,蒂姆。
发布于 2011-05-06 23:49:07
我用来自dbunit faq的信息解决了这个问题。只需设置数据类型工厂属性,警告就会消失。
Connection dbConn = template.getDataSource().getConnection();
IDatabaseConnection connection = new DatabaseConnection(dbConn, "UTEST", false);
DatabaseConfig dbConfig = connection.getConfig();
// added this line to get rid of the warning
dbConfig.setProperty(DatabaseConfig.PROPERTY_DATATYPE_FACTORY, new OracleDataTypeFactory());
发布于 2017-03-29 23:27:03
通过Spring-Boot,您可以使用这样的配置bean
@Configuration
public class DbUnitConfiguration {
@Autowired
private DataSource dataSource;
@Bean
public DatabaseDataSourceConnectionFactoryBean dbUnitDatabaseConnection() {
DatabaseConfigBean bean = new DatabaseConfigBean();
bean.setDatatypeFactory(new MySqlDataTypeFactory());
DatabaseDataSourceConnectionFactoryBean dbConnectionFactory = new DatabaseDataSourceConnectionFactoryBean(dataSource);
dbConnectionFactory.setDatabaseConfig(bean);
return dbConnectionFactory;
}
}
发布于 2014-02-11 03:20:21
我知道这是一个老帖子,但这里的所有答案都比需要的复杂得多。
完成每次连接获取的工厂设置的最简单方法是supply一个OperationListener
,并实现它的connectionRetrieved
方法来做您想做的事情。不需要重写;每次获取IDatabaseConnection
时都会调用侦听器。
https://stackoverflow.com/questions/3942965
复制相似问题