テストのベストプラクティス - Amazon CodeCatalyst

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

テストのベストプラクティス

が提供するテスト機能を使用する場合は CodeCatalyst、以下のベストプラクティスに従うことをお勧めします。

自動検出

でアクションを設定する場合 CodeCatalyst、自動検出を使用すると、JUnitテストレポートなどのさまざまなツールの出力を自動的に検出し、そこから関連する CodeCatalystレポートを生成できます。自動検出は、検出された出力の名前やパスが変更されても、レポートが引き続き生成されるようにするのに役立ちます。新しいファイルが追加されると、 CodeCatalyst はそれらのファイルを自動的に検出し、関連するレポートを生成します。ただし、自動検出を使用する場合は、この機能の以下の側面の一部を考慮することが重要です。

  • アクションで自動検出を有効にすると、同じタイプのすべての自動的に検出されたレポートが同じ成功基準を共有します。例えば、最小合格率などの共有基準は、自動検出されるすべてのテストレポートに適用されます。同じタイプのレポートに異なる基準が必要な場合は、これらのレポートごとに明示的に設定する必要があります。

  • 自動検出では、依存関係によって生成されたレポートも検索でき、成功基準が設定されている場合、これらのレポートのアクションが失敗する可能性があります。この問題は、除外パス設定を更新することで解決できます。

  • 自動検出は、実行時にアクションをスキャンするため、毎回同じレポートのリストを生成するとは限りません。特定のレポートを常に生成する場合は、レポートを明示的に設定する必要があります。例えば、テストがビルドの一部として実行を停止した場合、テストフレームワークは出力を生成せず、その結果、テストレポートが生成されず、アクションが成功する可能性があります。アクションの成功をその特定のテストに依存する場合は、そのレポートを明示的に設定する必要があります。

ヒント

新規または既存のプロジェクトを開始するときは、プロジェクトディレクトリ全体 ( を含む) に自動検出を使用します**/*。これにより、サブディレクトリ内のファイルを含め、プロジェクト内のすべてのファイルに対してレポート生成が呼び出されます。

詳細については、「アクションで品質レポートを設定する」を参照してください。

成功基準

成功基準を設定することで、レポートに品質しきい値を適用できます。例えば、2 つのコードカバレッジレポートが自動検出された場合、1 つは 80% のラインカバレッジで、もう 1 つは 60% のラインカバレッジで、次のオプションがあります。

  • ラインカバレッジの自動検出成功基準を 80% に設定します。これにより、最初のレポートが合格し、2 番目のレポートが失敗し、アクション全体が失敗します。ワークフローのブロックを解除するには、2 番目のレポートのラインカバレッジが 80% を超えるまで、プロジェクトに新しいテストを追加します。

  • ラインカバレッジの自動検出成功基準を 60% に設定します。これにより、両方のレポートが合格し、アクションが成功します。その後、2 番目のレポートでコードカバレッジを増やすことができます。ただし、このアプローチでは、最初のレポートのカバレッジが 80% 未満に低下しないことを保証できません。

  • ビジュアルエディタを使用するか、レポートごとに明示的なYAMLセクションとパスを追加して、レポートの一方または両方を明示的に設定します。これにより、レポートごとに個別の成功基準とカスタム名を設定できます。ただし、この方法では、レポートパスが変更されると、アクションが失敗する可能性があります。

詳細については、「レポートの成功基準の設定」を参照してください。

パスを含める/除外する

アクション結果を確認するときは、 IncludePathsと を設定 CodeCatalyst することで、 によって生成されるレポートのリストを調整できますExcludePaths

  • IncludePaths を使用して、レポートを検索するときに含め CodeCatalyst るファイルとファイルパスを指定します。例えば、 を指定すると"/test/report/*"、 は /test/report/ ディレクトリを検索するアクションで使用されるビルドイメージ全体 CodeCatalyst を検索します。そのディレクトリが見つかると、 はそのディレクトリ内のレポート CodeCatalyst を検索します。

    注記

    手動設定のレポートの場合、 は単一のファイルに一致する球パターンIncludePathsである必要があります。

  • ExcludePaths を使用して、レポートの検索時に除外 CodeCatalyst するファイルとファイルパスを指定します。例えば、 を指定した場合"/test/reports/**/*"、 CodeCatalystは /test/reports/ ディレクトリ内のファイルを検索しません。ディレクトリ内のすべてのファイルを無視するには、glob **/* パターンを使用します。

以下は、可能性のあるグロブパターンの例です。

パターン 説明

*.*

ドットを含む現在のディレクトリ内のすべてのオブジェクト名に一致します

*.xml

現在のディレクトリ内のすべてのオブジェクト名を で終わるように一致させます .xml

*.{xml,txt}

現在のディレクトリ内のすべてのオブジェクト名を .xmlまたは で終わるように一致させます .txt

**/*.xml

で終わるすべてのディレクトリのオブジェクト名を一致 .xml

testFolder

という名前のオブジェクトを一致させtestFolder、ファイルとして扱います

testFolder/*

などの testFolderからサブフォルダの 1 つのレベルのオブジェクトを照合します。 testFolder/file.xml

testFolder/*/*

testFolderサブフォルダの 2 つのレベルのオブジェクトを から照合します。 testFolder/reportsFolder/file.xml

testFolder/**

testFolder/file.xmltestFolder/otherFolder/file.xml などの testFolder 以下のファイルと同様に、サブフォルダ testFolder と一致する

CodeCatalyst は、glob パターンを次のように解釈します。

  • スラッシュ (/) 文字は、ファイルパス内のディレクトリを区切ります。

  • アスタリスク (*) 記号は、フォルダの境界を超えない、0 文字以上の名前の要素と一致します。

  • 二重アスタリスク (**) は、すべてのディレクトリをまたいで、0 文字以上の名前の要素と一致します。

注記

ExcludePaths は よりも優先されますIncludePathsIncludePaths と の両方に同じフォルダExcludePathsが含まれている場合、そのフォルダはレポート用にスキャンされません。