Mysql 将rspec测试用例限制在开发环境/数据库中

Mysql 将rspec测试用例限制在开发环境/数据库中,mysql,ruby-on-rails,ruby,rspec,sqlite,Mysql,Ruby On Rails,Ruby,Rspec,Sqlite,我在为一个使用MySQL语法的控制器操作编写测试用例时遇到问题。这是因为我的测试环境数据库是sqlite3,所以语法无法识别 我正在寻找一种方法来定制我的测试用例在哪个环境中运行,我发现,我在这里尝试过: Rspec.describe MyController, type :controller do before do allow(Rails).to receive(:env).and_return(ActiveSupport::StringInquirer.new(

我在为一个使用MySQL语法的控制器操作编写测试用例时遇到问题。这是因为我的测试环境数据库是sqlite3,所以语法无法识别

我正在寻找一种方法来定制我的测试用例在哪个环境中运行,我发现,我在这里尝试过:

Rspec.describe MyController, type :controller do

    before do
        allow(Rails).to receive(:env).and_return(ActiveSupport::StringInquirer.new("development"))
    end

    ... my actual tests ...
但是,它不起作用;我仍在得到一份工作

SQLite3::SQLException:没有这样的函数


有什么建议吗?

我意识到这不是你想要的输入,但为什么你要在开发环境中运行规范而不是测试?@tvon我希望测试在这种情况下使用mysql数据库,而不是SQLite,但如果你在生产环境中运行mysql,那么最好在测试中也使用mysql(并完全删除sqlite)。除此之外,你能提供更多关于你收到的错误的信息吗?这显然与你的代码样本无关。另外,你的
Gemfile
看起来像什么?@tvon感谢你的帮助。我在我的rspec测试用例之外找到了另一种解决方案,所以我应该很好。我意识到这不是你要输入的内容,但是为什么您试图在开发环境中运行规范而不是测试?@tvon我希望测试在本例中使用mysql数据库,而不是sqlite,但如果您在生产环境中运行mysql,那么最好在测试中也使用mysql(并完全删除sqlite)。除此之外,你能提供更多关于你收到的错误的信息吗?它显然与你的代码样本无关。另外,你的
Gemfile
看起来像什么?@tvon感谢你的帮助。我在我的rspec测试用例之外找到了另一种解决方案,所以我应该没事