4

我为我的 Rails 应用程序编写了一个 Mysql 函数,并手动将其添加到我的数据库中。当我想使用 Rails UNIT 测试来测试功能时,它会通过如下错误

ActiveRecord::StatementInvalid: Mysql::Error: FUNCTION mydatabase.fn_Sample_Function does not exist:

如何在测试套件之外或开始测试运行时添加功能?

提前致谢,Aaa。

4

1 回答 1

2

我看不到错误。但我认为问题出在您的模式格式上。

config.active_record.schema_format = :sql

在 application.rb 应该是你需要做的。

其背后的原因是默认情况下,您的测试数据库不是由您的开发数据库的仅模式转储生成的,而是来自 db/schema.rb - 它对 mysql 函数一无所知。

sql 模式格式将执行 mysqldump(或 pg_dump),并将仅模式标志设置为 true 并创建 development_structure.sql 文件。

于 2011-09-09T12:26:00.113 回答