我正在尝试将rspec测试添加到我已经开发过的应用中。我一直在关注本教程:http://everydayrails.com/2012/03/19/testing-series-rspec-models-factory-girl.html,它来自2012年,所以我确定它是使用Rails 3完成的。我安装了rspec和capybara,运行了bundle,并运行了rails g rspec:install。我开始在下面编写我的问题模型的测试,当我使用rspec spec / models / question_spec.rb运行它时
我收到错误:迁移正在等待处理;运行'bin / rake db:migrate RAILS_ENV = test'来解决此问题。我试图运行它,我收到了关于我之前的一次迁移的错误:
== ChangeTestTypeInScores: migrating =========================================
-- change_column(:scores, :test_type, "boolean USING CAST(test_type AS boolean)")
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:
SQLite3::SQLException: near "USING": syntax error: CREATE TABLE "scores" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "test_type" boolean USING CAST(test_type AS boolean), "name" varchar(255), "created_at" datetime, "updated_at" datetime, "user_id" integer, "month" varchar(255), "year" varchar(255))
如何在不弄乱数据库的情况下正确设置rspec,否则会正常工作?
rails_helper.rb:
ENV["RAILS_ENV"] ||= 'test'
require 'spec_helper'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'capybara/rspec'
ActiveRecord::Migration.check_pending!
.rspec:
--color
--require spec_helper
--require rails_helper
--format documentation
question_spec.rb:
require 'spec_helper'
describe Question do
it "has a valid factory"
it "is invalid without a body"
it "is invalid without an answer"
end
我认为将我的Scores模型中的:test_type更改为基于该错误的布尔值存在问题,但它在本地和Heroku上运行良好,所以我不想弄乱我的数据库才能运行试验。任何帮助表示赞赏。
更新: 我将其添加到test.rb文件中:
config.active_record.maintain_test_schema = false
此外,在看到许多其他相关的Stack Overflow问题后,我将我的rails版本更新为4.1.6。现在我收到了这个错误:
/Users/tambe257/.rvm/gems/ruby-2.0.0-p353/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:241:in `load': cannot load such file -- /Users/tambe257/programming/rails_projects/fast_track/spec/models/question.rb (LoadError)
看起来某些依赖项存在问题,但我一直在谷歌搜索错误而没有运气。
答案 0 :(得分:1)
在上面的更新中,我将其添加到test.rb文件中,该文件实际上已经清除了一切:
config.active_record.maintain_test_schema = false
然后我得到了(LoadError),但那是因为我的文件名不完全正确。当您在下面输入如下内容时,请确保路线和文件名正确无误!
rspec spec/models/question_spec.rb