組み込みの NUnit ランナーを使用してこれを行う方法が見つかりませんでした。PowerShell ビルド ステップを使用して必要なコマンドを手動で呼び出すことで、なんとか機能させることができました。
最初のステップは、dotCover カバー コール内で Gallio を介して NUnit テストを実行することです。
& dotCover cover `
/TargetExecutable="C:\Program Files\Gallio\bin\Gallio.Echo.exe" `
/TargetArguments="/report-type:XML /report-name-format:test-report /runner:IsolatedProcess /report-directory:.\Gallio .\Path\Test.dll" `
/Filters="+:WhatToCover" `
/Output=coverage.snapshot
その後、Gallio テスト レポートは、Sonar が reuseReport を使用して取得できるようになり、TeamCity はテスト結果を自動的に検出します。
サービスメッセージを標準出力に書き込むことで、TeamCity にカバレッジスナップショットを直接処理させることができます。
Write-Host "##teamcity[importData type='dotNetCoverage' tool='dotcover' path='coverage.snapshot']"
カバレッジ情報を Sonar で使用できる形式にするには、 dotCover report コマンドと文書化されていないレポート タイプ TeamCityXMLを使用する必要があります。
& dotCover report /Source=coverage.snapshot /Output=coverage-report.xml /ReportType=TeamCityXML