問題タブ [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.

0 投票する
5 に答える
20803 参照

ruby-on-rails - Rspec - 各テスト後にデータベースをクリーンアップする方法

ログインページに Capybara の機能仕様があり、FactoryGirl + DatabaseCleaner を使用しています

テストを実行すると、次のエラーが発生します。

DatabaseCleaner は変更を元に戻すと思っていましたが、ユーザー レコードは 2 番目のシナリオ ブロックまでデータベースに残っているようです。

最初のシナリオの後にデータベースが確実にクリーンアップされるようにするにはどうすればよいですか?

この投稿に従ってデータベースクリーナーを構成しました

また、仕様ヘルパー ファイルを次のように更新しました。

0 投票する
1 に答える
59 参照

ruby-on-rails - コントローラースペックのデータ消失

Rspec を使用して単純なコントローラー仕様を作成する際に、非常にイライラする問題があります。問題を引き起こすメソッドが呼び出され#set_company、現在サインインしているユーザーの親「アカウント」が設定されます。

私の仕様は次のようになります。

問題は、2 番目のテストは緑ですが、最初のテストはそうではありません (その順序は正しいです!)。赤いのは、トリガーされたときにcompany. これがその方法です:

  1. userが作成されています (company依存関係です)。そのユーザーの ID は1であり、そのユーザーで作成された会社の ID も1です。
  2. 2番目のテストがトリガーされ、すべてが素晴らしい
  3. 最初のテストがトリガーCompanyされますが、データベースに ID=1 のテストはありません。明らかに間違っている ID=2 の新しいテストがあり、set_companyメソッドが失敗します。

これは、database_cleaner を使用しているという事実に関連している可能性があると思いますが、それを処理する方法と、それについて何ができるかがまったくわかりません。手がかりをありがとうございました。

0 投票する
0 に答える
1071 参照

ruby-on-rails - rspec とデータベースのクリーニングによる並列テストの実行

rspec をバージョン 3.2 にアップグレードしましたMysql2::Error: Duplicate entryが、spec を実行すると多くのデータベース エラー ( ) が発生します。スペックは並行して動いているようです。データベース クリーナー gem (1.4.1)を使用していますが、アップグレード前は機能していました。何が起こっている?これが私のspec_helperファイルです:

0 投票する
1 に答える
576 参照

ruby-on-rails - テストの実行中に Mongo DB をクリアできない

私は、、、を使用しrailsmongoidsporkますrspec

経由でテストを実行してrspecいるときに、データベース内のレコード数が増えていることがわかります。どちらpurge!database_cleaner役に立ちませんでした。

私のテストは次のとおりです。

そして、私の仕様ヘルパーは次のとおりです。

前に述べたように、私も試しdatabase_cleanerてみましたが、状況は変わりませんでした:

だから私は一度にいくつかの質問があります.purge!なぜ何もしないのか、そしてなぜDatabaseCleanerうまくいかないのか.

データベース クリーナーの問題が見つかりましたが、有効な解決策はありません。

私は使っている

0 投票する
6 に答える
2530 参照

ruby-on-rails-4 - database_cleaner が開発データベースを消去しています

Rails 4 アプリケーション用にdatabase-cleaner構成しました。テストを実行するたびに、testdevelopment環境の両方でデータベースが消去されることがわかりました。

私の構成は次のrails_helperとおりです。

クリーナーがデータベースにtest environment触れずにデータベースのみを消去するようにするにはどうすればよいdevelopmentですか?

database.ymlは次のとおりです。

0 投票する
1 に答える
1304 参照

ruby-on-rails - MiniTest、Capybara、Fixture、Database_Cleaner が 2 回目に渡らない

次のテストは、初めて ( の後rake db:test:prepare) 合格しましたが、失敗して以降の実行でエラーが発生しました。

Capybara::ElementNotFound: css "#sale_payment_btn" が見つかりません

クロムでセレンを使用したので、販売のIDを見ることができました。後続のテストでも ID が同じであることに気付きました。すなわち980190963

私の理論はそれです

  1. database_cleaner期待どおりに機能していません。(ファイルに DB クリーニング sql コマンドが表示されtest.logますが、データがデータベースに残っていることがわかりました)

  2. visitレンダリングされていないため(最初の実行でセールがすでに行われているため)、新しい作成はしません(ここで@sale述べたように、ミニテストを使用します)。#sal_payment_btnpayment

私は今、半日髪を引っ張っています。私が試してみました

  • webkit運転者
  • 異なるクリーニング戦略truncationdeletion

2回目の実行ではまだテストに合格できません。手動テストでは問題なく動作しています。

私は何をどこで間​​違えましたか?

PS私は次の宝石を使用しています

私は以下を読みました