Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在TFS 2015中,对于失败的VNext构建,构建失败的步骤(构建任务)是否存储在DB anywhere中_Tfs_Tfs 2015_Vnext - Fatal编程技术网

在TFS 2015中,对于失败的VNext构建,构建失败的步骤(构建任务)是否存储在DB anywhere中

在TFS 2015中,对于失败的VNext构建,构建失败的步骤(构建任务)是否存储在DB anywhere中,tfs,tfs-2015,vnext,Tfs,Tfs 2015,Vnext,我知道,如果我点击一个构建链接获取摘要,它会显示所有步骤,但我无法在任何使用API或查看TFS数据库的地方找到构建失败的实际步骤(构建任务) TFS 2015是否将此存储在可访问的任何位置?您可以使用REST API()从构建时间线中检索失败的步骤 只需在下面的PowerShell示例中尝试从生成中检索失败的步骤(生成任务): Param( [string]$collectionurl = "http://ictfs2015:8080/tfs/DefaultCollection",

我知道,如果我点击一个构建链接获取摘要,它会显示所有步骤,但我无法在任何使用API或查看TFS数据库的地方找到构建失败的实际步骤(构建任务)


TFS 2015是否将此存储在可访问的任何位置?

您可以使用REST API()从构建
时间线
中检索失败的步骤

只需在下面的PowerShell示例中尝试从生成中检索失败的步骤(生成任务):

Param(
   [string]$collectionurl = "http://ictfs2015:8080/tfs/DefaultCollection",
   [string]$projectName = "ProjectName",
   [string]$BuildId = "44",
   [string]$user = "username",
   [string]$token = "password"
)

# Base64-encodes the Personal Access Token (PAT) appropriately
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))

$uri = "$($collectionurl)/$($projectName)/_apis/build/builds/$BuildId/timeline?api-version=2.0"
$response = Invoke-RestMethod -Uri $uri -Method Get -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}
$steps = $response.records | where {$_.result -eq 'failed' -and $_.type -eq 'Task'} # Filter the failed steps

$failedsteps = @()

foreach($step in $steps){

    $customObject = new-object PSObject -property @{
          "StepId" = $step.id
          "type" = $step.type
          "TaskName" = $step.name
          "startTime" = $step.startTime
          "finishTime" = $step.finishTime
          "state" = $step.state
          "result" = $step.result
          "changeId" = $step.changeId
          "workerName" = $step.workerName
        } 

    $failedsteps += $customObject       
}

$failedsteps | Select `
                StepId, 
                type, 
                TaskName,
                startTime,
                finishTime,
                state,
                result,
                changeId,
                workerName #|export-csv -Path C:\FailedBuildSteps.csv -NoTypeInformation

它将其存储在生成结果中。您试图解决什么问题?我正在尝试对生成定义失败进行一些统计,以查看哪些生成任务历史上失败最多。@DanielMann-我已经查找了生成结果表,但似乎找不到它。我已经检查了仓库和DefaultCollection数据库。我只是错过了,还是在别的地方?谢谢!这正是我一直在寻找的。我一直在手动遍历日志,这很痛苦。