Rails2アプリケーション用の12,000行のコードのキュウリ機能があります。コントローラー、モデル、ヘルパー、ページの表示コードなど、アプリケーションコードのコードカバレッジを取得するためのすべての機能を実行しています。すべての機能を実行するには、4時間かかります。それでも私は100%のコードカバレッジを取得していません。私の質問は、キュウリの機能を介して100%のコードカバレッジを取得する方法と、すべての機能の実行時間を4時間から最小の実行可能時間に短縮する方法です。
2 に答える
一般的にキュウリのスピードアップに関するページはたくさんあると思います。たとえば、 http: //aaron-jensen.com/post/5019042852/speed-up-your-rspec-cucumber-runはその1つです。
Cucumberを遅くしている原因はコードに固有である可能性があり、それを確認できるのはあなただけであるため、プロファイリングを確認する必要がある場合があります。
統合テストはフルスタックをテストしているため、遅いという評判があることを覚えておいてください(そしてそれがポイントです)。これが、統合レベルですべてをテストするのが遅すぎるため、多くの場合、完全な単体テストはありますが、完全な統合テストは行わない理由です。
より良いカバレッジを取得することに関して、カバレッジレポートを使用してカバーされている量を通知する場合は、HTMLレポートでカバーされていない行を通知する必要があり、そのためのテストを調整できます。
ただし、実際には、堅牢性のために存在するため、ユーザーインターフェイスでテストできないものがある可能性があります。つまり、実際には発生しないと予想されるものですが、万が一の場合に備えて処理します。予期しない理由、または将来のコード変更によるもの。このような場合、単体テストがこれらのコード行をカバーする唯一の方法である可能性があります。
もちろん、この機能は実際にユーザーの操作をシミュレートするため、実行には時間がかかります。を使用して実行する正確なシナリオを指定することにより、同じシナリオの再実行を回避できます。
cucumber path/to/file.feature:33
ここで33は、実行するファイル内の特定のシナリオの行番号を指定します。