問題タブ [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 投票する
1 に答える
23 参照

ruby-on-rails - DatabaseCleaner が特定のテーブルをリセットしないことは可能ですか?

Database Cleaner は、特定のテーブルを除くすべてのテーブルをリセットする方法をサポートしていますか?

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

ruby-on-rails - database_cleaner と factorygirl で 1 つのデータセットを常に存在させる方法

各サイトが複数のドメインを持つことができるマルチドメイン アプリケーションがあります (ロケール用)。

ApplicationControllerがやっている


私のテストスイートでは、ウェブサイトが表示されていることを確認したいだけです

仕様/機能/user_visits_homepage_spec.rb


私のdatabase_cleaner.rb


質問

サイトがないとコントローラーが機能しないため、常に1つのサイトがあることをどのように保証できますか。

私が行ったようにサイトを作成すると、database_cleaner は常にサイトを強制終了します。

私は間違った理解を持っていますか、それとも何かを見逃していますか?

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

ruby-on-rails - Rspec と database_cleaner は、テストによって追加されたデータのみを削除します

テスト データベースのシード データにいつでもアクセスできるようにしたいと考えています。そのように設定されている場合、database_cleaner がすべてを削除することを理解しています。

すべてを削除してからシードをリロードしようとしましたが、テストで js: true を使用しようとすると、シードがロードされないため、データが存在しないというエラーが発生します。

私のspec_helper.rb

私のview_specにあるとき、私はこのようなものを持っています

最初の 2 つのテストは実行され、そのユーザーを作成しても問題ありませんが、js: true で最後のテストに到達するとすぐに、データベースにアクセス許可がなくなります。

rspec によって追加されたデータのみを削除するように database_cleaner に指示する方法はありますか? 種ではありませんか?または、特定のテーブルを削除しないように指示することもできますか?

どんな助けでも大歓迎です。

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

sql-server-2008 - rSpec テスト時に rails gem database_cleaner を使用し、activerecord-sqlserver-adapter を使用する

Rails アプリケーション内で 2008 SQL Server データベースに接続するために、activerecord-sqlserver-adapter gem を使用しています。私はアプリケーション全体で「 Establish_connection 」を使用して複数のデータベースに接続していることに注意してください。rSpec を使用してアプリケーションをテストしていますが、rSpec が作成する DB からエントリを削除したいと考えています。グーグルで調べたところ、database_cleaner gem が問題の解決策になることがわかったので、Gem を含めて railsappname/spec/spec_helper.rb を次のようにセットアップしました。

また、次の行を false に更新しました

私の rails_helper.rb RSpec.configure ブロックに、その行が最初にあった場所です。

また、戦略を :truncation に変更しようとしましたが、違いはありませんでした。データはまだ DB に挿入されており、テストの完了後も削除されていません。これは activerecord-sqlserver-adapter の制限ですか? これに対する回避策はありますか? この問題は、アプリ内で複数のデータベースに接続していることが原因ですか? 私はしばらくグーグルで検索しましたが、この同じ問題を経験している人を見たことがないので、アドバイスをいただければ幸いです。

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

ruby-on-rails - rakeタスクとデータベースクリーナーgemを使用して、Ruby on Railsでデータベースを作成してクリーンアップする方法は?

1 つのファイルに 2 つの rake タスクがあります。種をまき、移植します。シードは必要なデータを作成しており、生成はテスト用のサンプル データを生成しています。

私のテストでは、データベースを操作しています(新しいエントリの追加、削除など)。データベースクリーナーgemを使用してデータベースをリセットしていますが、データベースをリセットすると、次のテストのためにデータを入力する必要があります。次の設定がありますが、データベースがまだ空であり、データの入力がありません。

これは spec/support/database_cleaner.rb です

spec/rails_helper.rb