lerna で作成した monorepo プロジェクトがあります。また、単体テストには Karma+Jasmine を使用しています。プロジェクト構造は次のようになります。
|-packages
| |-package1
| | |-coverage
| | | |-cobertura
| | | | |-coverage.xml // here goes the coverage report in cobertura format
| | | |-Browser1
| | | | |-html // here goes the reports in html (istanbul) for Browser 1
| | | |-Browser2
| | | |-html // here goes the reports in html (istanbul) for Browser 2
| | |-src
| | |-tests
| |-package2
| | |-coverage
| | | |-cobertura
| | | | |-coverage.xml
| | | |-Browser1
| | | | |-html
| | | |-Browser2
| | | |-html
| | |-src
| | |-tests
| .
| .
| .
|-karma.conf.js
テスト セットアップは適切に機能しており、HTML レポートと、coverage.xml
個々のパッケージ内の Cobertura 形式のレポートを生成しています。TFS CI には、「コード カバレッジ結果の発行」ビルド ステップがあり、さまざまなオプションに対して次の値を使用してカバレッジ結果を発行します。
- コード カバレッジ ツール:
Cobertura
- 要約ファイル:
$(System.DefaultWorkingDirectory)\packages\*\coverage\cobertura\coverage.xml
- レポート ディレクトリ:
$(System.DefaultWorkingDirectory)\packages\*\coverage
(HTML レポートの場合)
ただし、ビルドステップは次のことについて警告します
複数のファイルまたはディレクトリの一致が見つかりました。最初の一致を使用: C:\MyAgent\path\to\packages\package1\coverage\cobertura\coverage.xml
複数のファイルまたはディレクトリの一致が見つかりました。最初の一致を使用: C:\MyAgent\path\to\packages\package1\coverage
当然、1 つのパッケージのみのカバレッジ結果も表示されます。各パッケージの CI にビルド ステップを追加せずに、すべてのカバレッジ レポートを公開する方法はありますか?