我尝试使用ActiveRecord使用Sinatra的更简单的设置,我遇到了一些令人费解的问题,并且会喜欢另一组眼睛。我将提供所有相关文件:
database.yml中:
development:
adapter: sqlite3
database: db/development.sqlite3
test:
adapter: sqlite3
database: db/test.sqlite3
production:
url: <%= ENV['DATABASE_URL'] %>
Rake文件:
require_relative "demo_app"
require 'sinatra/activerecord/rake'
require 'rake/testtask'
Rake::TestTask.new do |t|
t.pattern = "test/*_test.rb"
end
test_helper.rb中:
ENV['RACK_ENV'] = 'test'
ENV["SINATRA_ENV"] = "test"
require_relative '../demo_app'
require 'minitest/autorun'
require 'rack/test'
ActiveRecord::Migration.maintain_test_schema!
迁移文件:
class CreatePeople < ActiveRecord::Migration
def change
create_table :people do |t|
t.string :name
t.date :dob
t.string :gender
t.string :gender
t.integer :zipcode
end
end
end
现在,我想针对测试数据库运行测试。我试图做的时候
rake db:create RAILS_ENV=test
- 它创建了一个development.sqlite3
rake db:migrate RAILS_ENV=test
- 同样的+运行迁移
我知道我在Rails之外使用ActiveRecord,所以我怀疑问题出在与database.yml或某些环境变量或其他东西的处理有关的地方。但我无法弄明白。
思想?
答案 0 :(得分:6)
尝试使用OUTPUT=`/usr/bin/time -o timefile --format="%U" date`
TIME=$(<timefile)
代替RACK_ENV
:
RAILS_ENV
或者:
$ rake db:create RACK_ENV=test