問題タブ [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 - DatabaseCleaner.clean_with(:truncate) が自動増分 ID をリセットしない
現在DatabaseCleaner
、Rails プロジェクトで PostgreSQL を実行して使用しており、以下のように設定しています。
Rails テスト スイートの 1 つで、インスタンスの ID を出力しました。clean_with(:truncate) はデータベースをクリアしてバキュームを実行すると想定しているため、比較的小さい数値である必要があると思います。しかし、テストを実行するたびに増加します。
テストはパスし、使用するシーケンスは関係ありません。しかし、なぜ本来clean_with(:truncation)
の方法で機能しないのでしょうか?
======編集======
これは RSpec テストの範囲内です。シーケンス番号付けがパフォーマンスに影響を与えないことは理解していますが、各 :suite で高価なクリーニング (:truncation) を使用し、安価で迅速なクリーニング (:transaction) を使用すると影響があります。clean_with(:truncation)
テストスイートを実行する前に、きれいなデータベース状態を取得するために id をリセットしない理由を理解したいと思います。
postgresql - Database Cleaner で挿入 ID を 1 にリセットするにはどうすればよいですか?
Database Cleaner の切り捨てからトランザクション戦略に切り替えました。はるかに高速です (正確には 2.5 倍)。
ここでの問題は、最初の挿入 ID が 1 であることを期待するいくつかのテストがあることです。これらのテストは、ページング応答用です。データベースには ID 1 から始まる 11 レコードが必要です。
トランザクションを使用するだけでなく、挿入 ID を 1 に設定するように Database Cleaner を構成することはできますか?
Postgres の使用。
ruby-on-rails - パブリックとは異なるスキーマ内のすべてのデータを切り捨てる方法 (database_cleaner)
私のプロジェクトでは、データベースのマルチテナンシー 'apartment' gem を使用しています。
テストするデータベースをクリーンアップするには、「database_cleaner」gem を使用します
Capybara の切り捨て戦略を使用した RSpec テストでは、ユーザーと会社のみの公開スキーマのみを各テスト後にクリーンアップします。
他のスキームはクリアされません。
別のスキームでデータをクリアする方法
ruby-on-rails - database_cleaner を使用したテスト後に Rspec テスト データを削除する
Rspec を使用して Rails アプリケーションをテストしています。このアプリケーションは、プリロードされたデータとカスタマイズされたデータを使用します。データベースの状態を変更せずに、同じ開発環境でこのアプリケーションをテストしたいと考えています。テスト後に database_cleaner gem を使用してデータを削除します。ただし、テーブル内のすべてのデータが削除されます。データベース内のデータを変更せずにコードをテストするにはどうすればよいですか。
ruby-on-rails - RSpec、Postgres、および DatabaseClearer: トランザクション戦略で ID をリセットすることは可能ですか?
特定の ID にコーディングするべきではないことはわかっていますが、コーディングを行うと作業がずっと楽になることがあります。RSpec と Postgres で DatabaseCleaner を使用していますが、トランザクション戦略を使用しているときに仕様間で ID をリセットできるかどうか疑問に思っていますか?
これが私の現在spec_helper
です: