如何删除 VSTS 中的共享步骤

How do I delete shared steps in VSTS

我正在尝试以编程方式删除共享步骤(我正在试验 export/import,并且生成了大量内容,希望能够删除它们 – 不是手动删除,一次删除一个)。

共享步骤,与所有“隐藏”类别的工作项类型一样,无法使用删除工作项删除 API。测试用例、测试计划和测试套件有特殊的 API 允许删除,但我找不到类似的 API 用于共享步骤。

有谁知道 API 是什么,或者是否有,或者是否会有?

是的,共享步骤实际上是幕后工作项类型。

不像测试plan/suite,没有相关的RestAPI可以直接删除。期望通过门户网站手动删除。它只能通过使用 witadmin destroywi 命令销毁,这是目前唯一可用的选项。

也适用于 VSTS,您只需安装任何版本的 VS,命令位于 (%programfiles(x86)%\Microsoft Visual Studio 1x.0\Common7\IDE )

To run the witadmin command-line tool, open a Command Prompt window where Visual Studio is installed. The witadmin command-line tool installs with any version of Visual Studio.

You can access this tool by installing the free version of Visual Studio Community.

您需要知道要删除的共享步骤工作项的 ID

witadmin destroywi /collection:https://xxx.visualstudio.com /id:123

现在可以通过 REST API 完成:


$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($personalToken)"))
$header = @{authorization = "Basic $token"}

$sharedStepIdFileContent = Get-Content -Path .\SharedStepsIdList.txt
$sharedStepIdList = $sharedStepIdFileContent.Split([System.Environment]::NewLine, [System.StringSplitOptions]::RemoveEmptyEntries)
$sharedStepIdList | % {
    $sharedStepId = $_
    $url = "https://dev.azure.com/{org}/{project}/_apis/test/sharedstep/$($sharedStepId)?api-version=5.0-preview.1"
    
    Write-Host "Deleting Shared Step $sharedStepId ..." 
    Invoke-RestMethod -Uri $url -Method Delete -ContentType application/json -Headers $header   
}