2

Heroku にプッシュすることができたので、データベースを移行する必要がありますが、rake aborted というエラーが発生しています。

コマンド heroku rake db:migrate を実行したところ、コマンド ライン エラーが

WARNING: `heroku rake` has been deprecated. Please use `heroku run rake` instead.
Running `rake db:migrate` attached to terminal... up, run.6184
rake aborted!
uninitialized constant MiniTest::Rails
/app/vendor/bundle/ruby/2.0.0/gems/minitest-4.7.5/lib/minitest/unit.rb:19:in `const_missing'
/app/Rakefile:9:in `<top (required)>'
(See full trace by running task with --trace)

それで、私はコマンドを実行しました

Running `rake db:migrate` attached to terminal... up, run.8495
rake aborted!
uninitialized constant MiniTest::Rails
/app/vendor/bundle/ruby/2.0.0/gems/minitest-4.7.5/lib/minitest/unit.rb:19:in `const_missing'
/app/Rakefile:9:in `<top (required)>'
(See full trace by running task with --trace)

ここに私のRakefileのコピーがあります

#!/usr/bin/env rake
# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.

require File.expand_path('../config/application', __FILE__)
require 'rake/dsl_definition'
require 'rake'

Portfolio::Application.load_tasks

MiniTest::Rails::Testing.default_tasks << "features"

これも私のGemfileのコピーです

 group :development, :test do
      gem "minitest-rails"
      gem 'sqlite3'
    end

    group :production do
      gem 'pg'
      gem 'rails_12factor'
    end




    group :test do
      gem "minitest-rails-capybara"
    end

    # Gems used only for assets and not required
    # in production environments by default.
    group :assets do
      gem 'sass-rails',   '~> 3.2.3'
      gem 'coffee-rails', '~> 3.2.1'

      # See https://github.com/sstephenson/execjs#readme for more supported runtimes
      # gem 'therubyracer', :platforms => :ruby

      gem 'uglifier', '>= 1.0.3'
    end

    gem 'jquery-rails'

    # To use ActiveModel has_secure_password
    # gem 'bcrypt-ruby', '~> 3.0.0'

    # To use Jbuilder templates for JSON
    # gem 'jbuilder'

    # Use unicorn as the app server
    # gem 'unicorn'

    # Deploy with Capistrano
    # gem 'capistrano'

    # To use debugger
    # gem 'debugger'

私の問題が何であるか、なぜherokuに移行できないのか誰にもわかりませんか?

4

3 に答える 3

2

gemfile の :test グループには minitest しかありませんが、これは良いことですが、rake ファイルは MiniTest クラスを使用しようとします。これを試して:

if Rails.env == "test"
  MiniTest::Rails::Testing.default_tasks << "features"
end
于 2013-10-11T18:00:59.627 に答える
1

理由は次のとおりです。uninitialized constant MiniTest::Rails

開発環境とテスト環境に対してのみ minitest-rails を指定しました。デフォルトでは、heroku は本番環境でアプリを実行し、本番用のミニテスト レールはありません。

そして、テストのためだけにテスト タスクを実行する条件:

MiniTest::Rails::Testing.default_tasks << "features" if Rails.env == 'test'

于 2013-10-11T18:04:17.737 に答える