カスタムTFS2012ワークフローでは、次のコードスニペットを使用しています。
IBuildDetail buildDetail = context.GetValue(BuildDetail);
var testManagementService = TfsTeamProjectCollectionFactory
.GetTeamProjectCollection(new Uri("http://tfs:8080/tfs/Sandbox"))
.GetService<ITestManagementService>();
var buildCoverages = testManagementService
.GetTeamProject(buildDetail.TeamProject)
.CoverageAnalysisManager
.QueryBuildCoverage(buildDetail.Uri.ToString(), CoverageQueryFlags.Modules);
コードカバレッジはビルドで正しく実行されており、ビルドの「ビルドの概要」には次のものが含まれています。
> 2 binaries instrumented - 89% of all code blocks covered
fooTests.dll - 99% of 479 code blocks covered
foo.exe - 74% of 347 code blocks covered
テストの目的で、カスタムアクティビティは、「ゲート変更のチェックイン」後のワークフローの最後のアクティビティです。ビルド中、buildCoverages
変数には長さ0の配列が含まれます。なぜこれなのか分かりますか?カバレッジ結果は非同期でTFSに送信され、ビルドの完了後に送信されますか?「トランザクション」のビルドと上記のコードは、進行中のビルドを表示せずに動作していますか?どんな助けでも大歓迎です。