TFS 2012自定义构建工作流;未找到生成覆盖率
在自定义TFS 2012工作流中,我使用以下代码段:TFS 2012自定义构建工作流;未找到生成覆盖率,tfs,workflow-activity,Tfs,Workflow Activity,在自定义TFS 2012工作流中,我使用以下代码段: IBuildDetail buildDetail = context.GetValue(BuildDetail); var testManagementService = TfsTeamProjectCollectionFactory .GetTeamProjectCollection(new Uri("http://tfs:8080/tfs/Sandbox")) .GetSer
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);
出于测试目的,自定义活动是“签入门控更改”之后工作流中的最后一个活动。在生成过程中,buildCoverages
变量包含一个长度为0的数组。知道为什么吗?构建完成后,覆盖率结果是否异步提交回TFS?在“事务”中的生成和上述代码是否在对正在进行的生成不可见的情况下运行?非常感谢您的帮助。我不确定原因(可能有很多原因),但在构建工作流期间通过此界面提供的覆盖范围与工作流并不同步。添加延迟循环
do
{
buildCoverages = testManagementService
.GetTeamProject(buildDetail.TeamProject)
.CoverageAnalysisManager
.QueryBuildCoverage(buildDetail.Uri.ToString(), CoverageQueryFlags.Modules);
} while(buildCoverages.Length == 0 && retryDelay())
围绕这段代码,可以确保(到目前为止只需几秒钟)构建覆盖率阵列的可用性
do
{
buildCoverages = testManagementService
.GetTeamProject(buildDetail.TeamProject)
.CoverageAnalysisManager
.QueryBuildCoverage(buildDetail.Uri.ToString(), CoverageQueryFlags.Modules);
} while(buildCoverages.Length == 0 && retryDelay())