[解決済み] Rails 4: テスト用データベースをリセットする方法は?
2023-01-02 06:43:32
質問
Rails 4を使用していますが、テストのリファクタリングでbeforeフィルターを使用しているため、RSpecのテストの一部が失敗していることに気づきました(おそらくトランザクションが原因)。この投稿では、同様の問題について説明しています。
rails test database not clearing after some runs
DatabaseCleaner gemを使う代わりに、テストデータベースをクリアするrakeコマンドはないのでしょうか? 私は
rake db:test:prepare
はRails 4で非推奨になりました。また、もし以下のようなトランザクションの前に
`post :create, user: Fabricate.attributes_for(:user)`
が永続的である場合、テストデータベースを手動で消去する必要性を避けるために、リファクタリングの代替方法はありますか?
どのように解決するのですか?
やりすぎな解決方法としては
bundle exec rake db:drop RAILS_ENV=test
bundle exec rake db:create RAILS_ENV=test
bundle exec rake db:schema:load RAILS_ENV=test
これを全部rakeのタスクにして実行すればいい。
もう一つの解決策は
はこちら
は、以下のようにあなたの
spec_helper.rb
ファイル
config.after :all do
ActiveRecord::Base.subclasses.each(&:delete_all)
end
免責事項: 私はこれをテストしていませんし、あなたが読むべきは SOポスト をお読みください。
とはいえ、このような状況を避けるために、データベースクリーナーgemを使用することをお勧めします。
関連
-
[解決済み] どのようにrailsでラジオボタンを正しく使用するには?
-
[解決済み] Paramが無いか、値が空である。ParameterMissing in ResultsController#update
-
[解決済み] Railsマイグレーションを利用してカラムをドロップする方法
-
[解決済み] rspecにおけるassignsの意味
-
[解決済み] Rubyのswitch文の書き方
-
[解決済み] Ruby on Railsのマイグレーションでデータベースのカラムの名前を変更するにはどうすればよいですか?
-
[解決済み] Rubyでnilとemptyとblankを理解する方法
-
[解決済み] Ruby on Railsで現在の絶対URLを取得するにはどうすればよいですか?
-
[解決済み] Ruby on RailsでJSON出力を "きれい "にフォーマットする方法
-
[解決済み】Railsの認証トークンを理解する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Rails。Ruby on Railsの移行でデータベースカラムの名前を変更するにはどうすればよいですか?
-
[解決済み] pg gem をインストールしようとすると 'libpq-fe.h' ヘッダが見つからない
-
[解決済み] Rubyの文字列から日付への変換
-
[解決済み] Mac OS Xにhomebrewがインストールされているかどうかを確認する方法
-
[解決済み] heroku push rejected, failed to compile Ruby/rails app
-
[解決済み] 該当するルートがない [GET] "demo/hello"
-
[解決済み] Railsです。gemを使った特定バージョンのライブラリのアンインストール
-
[解決済み] railsで':remote => true'はどのように動作するのでしょうか?
-
[解決済み] Ruby on Rails の新規セットアップ : "Expected string default value for '--rc'; got false (boolean)".
-
[解決済み] 属性とカラムの違いは何ですか?