上記までは全然つまらずにSonarQubeのドキュメント通りに進めれば問題なく進められる。Memoryエラーが発生することくらい。MemoryについてはSonarQubeのドキュメントにも書いてあり、環境変数を設定する。Taskが分割されていた場合には、単純に上記の設定ではコードカバレッジの連携がうまくいかないことが分かったためである。Taskを順番に実行していた。Test4という名前だとする。VSTSのエージェント側ではTest毎にビルド用フォルダ内に、trxファイルとcoverageファイルが生成される。Taskでファイルは上書きされ、差し替えられるようになっている。taskが実行されるタイミングでは、最後のTest4のタスクについてのtrxファイルとcoverageファイルしか残っていないため、すべてのテストについてのテスト結果やcoverageファイルをSonarQubeに連携できないという状態だった。Pipelineの実行において、trxファイル、coverageファイルともに、1ファイルずつしか扱えないようで、この方法は断念した。したがって、Sonarqubeに連携するにはどうにかしてtrxファイルとcoverageファイルをマージする必要がある。trxファイルのマージtrxファイルのマージはいろいろとググった結果、TRX-Mergerというものがあり、これを使ってマージすることで問題なくなった。Studioで用意されているexeを利用すればいいことが分かった。変換する方法が書いてあるだけだったが、exeから複数のcoverageのファイルパスを並べて実行してしまえば問題なかった。...というわけで、書いた大作のpowershellが↓です。ところどころにGet-Locationと書いてありますが、これはデバッグ用に書いたもので消してないだけなのでうまく無視していください。前提としてフォルダ構成はこんな感じになっていると思って読んでください。2017用のパスを利用していますが、適宜別のバージョンに読み替えればなんとかなるかと思っています。2.*)を利用しています。←ここはVSTSのagentの実行者の設定などによって、テスト結果のtrxファイルやcoverageファイルが出力されるフォルダ名が変わるので、こうしています。2.*)を利用しています。...trxファイルをマージして、一つのtrxファイルに変換するTRX_Merger.exeはビルド後のものを利用しているので、パスがビルドされたものっぽいところになっています。Taskで記述しています。Taskを使っただけです。Propertiesのところで、下記の2行を追記する。sonar.cs.vscoveragexml.reportsPaths=**/Summary.coveragexmlsonar.cs.vstest.reportsPaths=**/Summary.trx以上で、SonarQubeまでのコードカバレッジの連携がうまくいくようになった。すごく長いものを書いてしまい、これは2回に分けて書くくらいでもよかったのかもしれないと感じた・・・。月別アーカイブはてなブログをはじめよう!gototoさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。