問題タブ [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.
database - cucumber と databasecleaner を使用する場合、テーブルに単一のエントリを保持できますか?
現在、cucumber と databasecleaner を使用してアプリケーションをテストしています。そして現在、私env.rb
はクリーナーのセットアップを次のようにしています:
このようにして、データを保持できますTABLE
。しかし、テスト間で別のテーブルに単一のエントリを保持したいとも考えています。Before
それを達成する方法はありますか、それともフックで常に再作成する必要がありますか?
ruby-on-rails - capybara を 1.0.1 から 1.1.4 にアップグレードすると、database_cleaner が仕様を壊す
バージョン 3.2.11 にアップグレードされた古い Rails アプリケーションがあります。このアプリケーションには、カピバラ バージョン 1.0.1 を使用して記述され、セレン ドライバーを使用して実行される多くの要求仕様があります。データベースは、切り捨て戦略を使用して database_cleaner を使用して各テストの後にクリーンアップされます。
Selenium の代わりにポルターガイストを使用したいので、カピバラを 1.0.1 から 1.1.4 にアップグレードして、最新バージョンのポルターガイストを使用できるようにしました。capybara gem (およびその依存関係) を変更しただけで、仕様の実行に問題が発生しました。
各仕様の後、クリーンアップ ハンドラーで Postgresql データベースから一貫してデッドロック エラーが発生します。私の spec_helper はかなり基本的なもので、次のようになります。
私が得るエラーは次のようなものです:
FactoryGirl を使用してテスト データを作成しますが、それ以外は特別な IMO はありません。
database_cleaner によって作成されたデッドロックのもう一方の端を保持しているものを理解できませんでした。それを理解するためのアイデアは大歓迎です。
カピバラ 1.0.1 と 1.1.4 の間に変更があり、これらの問題を引き起こし始めた可能性があることを知っている人はいますか?
ruby-on-rails - database.ymlと複数のデータベースを含まないdatabase_cleaner
Rails以外のアプリケーションのキュウリテストがあります。
プロジェクトにdatabase.ymlがありませんが、何らかの理由でデータベース.ymlを使用したくありません(接続設定は少し異なる形式で保存されます)。
私はいくつかのデータベースモデルを持っています。
今、そのデータベースをクリーンアップするために、私は次のコードを使用しようとしています。私はdatabase.ymlを持っていないので、モデルを渡すだけです。
しかし、それはActiveRecord :: Baseによって接続されたデータベースのみをクリーンアップし、DatabaseAとDatabaseBはクリーンアップしません。何が問題なのですか?
ruby-on-rails - RailsRspecCapybaraとDatabaseCleaner-機能テストでのみ切り捨てを使用
データベースクリーナーのみを使用するこのクールな方法を見ました:js=>trueを使用したカピバラテストの切り捨て
spec_helper.rb内:
問題は、capybaraで行われる機能テストでは、クリーニング戦略を:truncationにする必要があるように思われることです。
ただし、他のすべての仕様は、大幅に高速な:transactionで問題ありません。
カピバラ機能テストのみの戦略を指定する方法はありますか?何かのようなもの:
cucumber - DatabaseCleaner 戦略トランザクションが機能していません
私のenv.rbで
私のshared_steps.rbにもフックを作成しました
マイ機能ファイル内
私は宝石を使用しています:
私のデータベースで.rb
DatabaseCleaner.strategy = :trancation は正常に動作しています (データベースからすべてのレコードを削除します) が、DatabaseCleaner.strategy = :transaction がデータベース レコードをロールバックしていません。私は何かを逃していますか?
ruby-on-rails - Rails database_cleaner はデータベース全体を消去します
database_cleaner gemを使用してスペックのクリーニングを設定しようとしています。私のspec_helper.rbには、次の簡単な構成があります。
ただし、仕様を実行すると、DatabaseCleaner.clean の実行後にデータベースが完全に消去されることに気付きました。テストの影響のみをクリーンアップすることを意図していると確信しています...そのような動作を引き起こす可能性のあるアイデアはありますか?
ruby-on-rails - Rspecが非常に遅い
私のrspecテストは、ガードとスポークを使用しても非常に遅く実行されるようです。
テストを最適化し、データベースとの相互作用を減らすためにできることがいくつかあることを理解していますが、spec_helperが正しく設定されていないことを強く疑っています。私はモンゴイドでレール3.2.11にいます。データベースクリーナーは、実行するたびにクリーンアップします。
更新:問題は私のテストの1つにありました。3秒かかっていました。以下の結果を得るために使用したコマンドについては、@SamPeaceyの回答を確認してください。
javascript - カブと Database_cleaner の構成
カブと Ruby on Railsを使用しています。JavaScript を使用するシナリオと使用しないシナリオがあります。transaction
JavaScript 以外のシナリオには DatabaseCleaner 戦略を使用し、などでtruncation
マークされたシナリオには戦略を使用したいと考えています。@javascript
@selenium
Rspec機能には次のソリューションを使用しています
しかし、カブの場合はうまくいきません。期待どおりに動作させるための最良の方法は何ですか? または、言い換えると、@javascript
(または@selenium
およびなど)タグでマークされたカブのシナリオをどのように指定するのconfig.before
ですか?
ruby - ミニテストレールでデータベースクリーナーが機能しない
Minitest コントローラー テストは、単独で実行すると正常に動作しますrake minitest:controllers
が、実行するrake minitest:all
と検証失敗エラーが発生します。これは、電子メールがモデル テストで既に使用されているためです。DatabaseCleaner を使用してデータベースをクリーンアップしましたが、データベースをクリーンアップできませんでした。
データベースクリーナーの私のコード:
ruby-on-rails - データベースのクリーニングがないか、データベースが空です
テスト スイートを機能させることができません。さまざまな構成を組み合わせて一致させようとしました。しかし、このビューの結果はすべて同じです。テスト間で何もクリーンアップされないか、データベースが空です。
この種のエラーが発生します:
何も掃除していないとき
またはこれ、空の DB :
database_cleaner の有無にかかわらず試してみました。Spork なしで試しました。たとえば、さまざまなソースからさまざまな構成を試しました。
https://github.com/bmabey/database_cleaner#rspec-example
しかし、私はそれを機能させる方法を理解できません。
gems バージョンを含む Gemfile は次のとおりです。
ビューは次のとおりです。
2 つのモデル:
そして対応するスペック
これが私のspec_helper.rbです
それは何か提案ですか?