OSX 10.11.4上的Rails 4.2.5,MySQL 5.7.11
运行rake spec
运行测试套件(好),rspec spec
会导致Mysql2::Error
(错误)。
我的理解有限,rake spec
和rspec spec
应该完全相同。
我希望之前经历过此事的人能够看到这一点。
这种奇怪的行为发生在远程拉动之后,它增加了远程团队开发的许多新功能。现在,我正在为应用程序开发的测试套件非常奇怪。
rspec spec
失败了:
…/lib/mysql2/client.rb:107:in `_query': Mysql2::Error: No database selected: SHOW TABLES (ActiveRecord::StatementInvalid)
我通常在database.yml文件中遇到直接问题之前看到过这个错误,但该文件没有更改,并且引用了正确的数据库。
我通过mysql shell验证了测试数据库是否存在并且具有所有预期的表。
该应用在开发环境中运行良好。
在我将rake spec
添加到application.rb之前运行require "spec-rails"
没有做任何事情,这在上述git pull之前是不必要的。
正在运行rake db:test:prepare
并且我确认它正在按预期设置架构。
我已经删除并重新创建了测试数据库,只是为了确保。
我已经停止并重新启动了mysql服务器
虽然rake spec
有效,但它比拉动前慢得多。