問題タブ [database-cleaner]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - Rspec - 各テスト後にデータベースをクリーンアップする方法
ログインページに Capybara の機能仕様があり、FactoryGirl + DatabaseCleaner を使用しています
テストを実行すると、次のエラーが発生します。
DatabaseCleaner は変更を元に戻すと思っていましたが、ユーザー レコードは 2 番目のシナリオ ブロックまでデータベースに残っているようです。
最初のシナリオの後にデータベースが確実にクリーンアップされるようにするにはどうすればよいですか?
この投稿に従ってデータベースクリーナーを構成しました
また、仕様ヘルパー ファイルを次のように更新しました。
ruby-on-rails - コントローラースペックのデータ消失
Rspec を使用して単純なコントローラー仕様を作成する際に、非常にイライラする問題があります。問題を引き起こすメソッドが呼び出され#set_company
、現在サインインしているユーザーの親「アカウント」が設定されます。
私の仕様は次のようになります。
問題は、2 番目のテストは緑ですが、最初のテストはそうではありません (その順序は正しいです!)。赤いのは、トリガーされたときにcompany
. これがその方法です:
user
が作成されています (company
依存関係です)。そのユーザーの ID は1であり、そのユーザーで作成された会社の ID も1です。- 2番目のテストがトリガーされ、すべてが素晴らしい
- 最初のテストがトリガー
Company
されますが、データベースに ID=1 のテストはありません。明らかに間違っている ID=2 の新しいテストがあり、set_company
メソッドが失敗します。
これは、database_cleaner を使用しているという事実に関連している可能性があると思いますが、それを処理する方法と、それについて何ができるかがまったくわかりません。手がかりをありがとうございました。
ruby-on-rails - rspec とデータベースのクリーニングによる並列テストの実行
rspec をバージョン 3.2 にアップグレードしましたMysql2::Error: Duplicate entry
が、spec を実行すると多くのデータベース エラー ( ) が発生します。スペックは並行して動いているようです。データベース クリーナー gem (1.4.1)を使用していますが、アップグレード前は機能していました。何が起こっている?これが私のspec_helperファイルです:
ruby-on-rails - テストの実行中に Mongo DB をクリアできない
私は、、、を使用しrails
てmongoid
いspork
ますrspec
。
経由でテストを実行してrspec
いるときに、データベース内のレコード数が増えていることがわかります。どちらpurge!
もdatabase_cleaner
役に立ちませんでした。
私のテストは次のとおりです。
そして、私の仕様ヘルパーは次のとおりです。
前に述べたように、私も試しdatabase_cleaner
てみましたが、状況は変わりませんでした:
だから私は一度にいくつかの質問があります.purge!
なぜ何もしないのか、そしてなぜDatabaseCleaner
うまくいかないのか.
データベース クリーナーの問題が見つかりましたが、有効な解決策はありません。
私は使っている
ruby-on-rails-4 - database_cleaner が開発データベースを消去しています
Rails 4 アプリケーション用にdatabase-cleaner
構成しました。テストを実行するたびに、test
とdevelopment
環境の両方でデータベースが消去されることがわかりました。
私の構成は次のrails_helper
とおりです。
クリーナーがデータベースにtest environment
触れずにデータベースのみを消去するようにするにはどうすればよいdevelopment
ですか?
私database.yml
は次のとおりです。
ruby-on-rails - MiniTest、Capybara、Fixture、Database_Cleaner が 2 回目に渡らない
次のテストは、初めて ( の後rake db:test:prepare
) 合格しましたが、失敗して以降の実行でエラーが発生しました。
Capybara::ElementNotFound: css "#sale_payment_btn" が見つかりません
クロムでセレンを使用したので、販売のIDを見ることができました。後続のテストでも ID が同じであることに気付きました。すなわち980190963
私の理論はそれです
database_cleaner
期待どおりに機能していません。(ファイルに DB クリーニング sql コマンドが表示されtest.log
ますが、データがデータベースに残っていることがわかりました)visit
レンダリングされていないため(最初の実行でセールがすでに行われているため)、新しい作成はしません(ここで@sale
述べたように、ミニテストを使用します)。#sal_payment_btn
payment
私は今、半日髪を引っ張っています。私が試してみました
webkit
運転者- 異なるクリーニング戦略
truncation
、deletion
2回目の実行ではまだテストに合格できません。手動テストでは問題なく動作しています。
私は何をどこで間違えましたか?
PS私は次の宝石を使用しています
私は以下を読みました