我将Java与MySQL数据库一起使用,当我尝试运行测试时,我得到了消息:
org.dbunit.dataset.DataSetException:java.sql.SQLSyntaxErrorException:未知表' my_table'在information_schema中
看起来DbUnit无法访问表格的元数据。 你有什么想法吗?
由于
答案 0 :(得分:1)
我遇到了同样的问题。看来DBUnit
(2.6.0)的当前版本与mysql-connector-java
的最新版本不兼容。我通过将mysql-connector-java
的版本更改为5.*.*
来解决它。
如果它不起作用。您可以尝试自己指定架构。为此,您需要创建一个IDataBaseConnection
bean
@Bean("mysqlTestSource")
public IDatabaseConnection databaseConnection(DataSource dataSource) throws SQLException, DatabaseUnitException {
return new MySqlConnection(dataSource.getConnection(), YOUR_SCHEMA_NAME);
}
然后通过将注释添加到测试类中,要求DBUnit使用此连接
@DbUnitConfiguration(databaseConnection = "mysqlTestSource")
希望有帮助。
答案 1 :(得分:0)
可能是模式混淆问题 - AmbiguousTableNameException FAQ条目应该解决它。