簡體   English   中英

通過 Azure DevOps REST API 獲取 PR 代碼覆蓋率差異狀態

[英]Getting PR Code Coverage diff status via Azure DevOps REST API

我的 Azure DevOps 分支設置了代碼覆蓋率策略,因此 PR 必須包含 80% 的差異覆蓋率(即覆蓋 80% 的修改行)。 無論差異覆蓋策略是否通過,我都試圖通過 REST API 進行拉取。

我嘗試使用GET https://dev.azure.com/{organization}/{project}/_apis/policy/evaluations?artifactId=vstfs:///CodeReview/CodeReviewId/{projectId}/{pullRequestId}&api-version=6.1-preview.1 ,但在響應中,代碼覆蓋策略的狀態是“排隊”。

我相信這與以下事實有關,即在我的 PR 的 Checks 部分,我看到兩個代碼覆蓋率檢查:一個檢查說 myrepo/codecoverage 是“等待”狀態,另一個說“我的 repo 的覆蓋狀態檢查成功”

上面的 API 正在返回等待代碼覆蓋檢查,但不是成功的檢查。 這是因為代碼覆蓋被視為外部服務嗎? 如果是這樣,我怎樣才能得到結果?

我可以使用此 API 獲得完整的代碼覆蓋率: https://dev.azure.com/{organization}/{project}/_apis/test/codecoverage?buildId={buildId}&flags=7&api-version=6.1-preview.1 : https://dev.azure.com/{organization}/{project}/_apis/test/codecoverage?buildId={buildId}&flags=7&api-version=6.1-preview.1 }/ https://dev.azure.com/{organization}/{project}/_apis/test/codecoverage?buildId={buildId}&flags=7&api-version=6.1-preview.1 }/ https://dev.azure.com/{organization}/{project}/_apis/test/codecoverage?buildId={buildId}&flags=7&api-version=6.1-preview.1 test/ https://dev.azure.com/{organization}/{project}/_apis/test/codecoverage?buildId={buildId}&flags=7&api-version=6.1-preview.1 api- https://dev.azure.com/{organization}/{project}/_apis/test/codecoverage?buildId={buildId}&flags=7&api-version=6.1-preview.1 ,但我再次尋找差異覆蓋范圍。

或者分支策略設置有問題,以至於代碼覆蓋率檢查沒有更新本身,而是留下等待檢查並產生單獨的檢查? 謝謝。

您看到兩個代碼覆蓋率檢查的原因是因為myrepo/codecoverage您指定的myrepo/codecoverage狀態檢查。 所以它一直在等待從管道發布的代碼覆蓋狀態。 你可能手動輸入myrepo/codecoverageStatus to check現場,並在大寫字母myrepo

如本文檔所述,分支策略頁面上的Status to check字段是{name-of-your-pipeline/codecoverage} 但是該文件沒有明確說明name-of-your-pipeline是小寫的。 如果您的驗證管道名稱中包含大寫字母,並且您手動輸入Status to checkStatus to check字段,則需要將其更改為小寫。

我一開始遇到了同樣的問題,因為我不知道{name-of-your-pipeline/codecoverage}應該是小寫的。 我在字段中用大寫字母手動輸入了我的管道名稱。

實際上,如果您的驗證管道在設置Status check分支策略之前已經執行並發布了覆蓋率。 Status to checkStatus to check值將自動查找覆蓋狀態並將其顯示在下拉列表中。 見下文。 您可以直接選擇它,而無需手動輸入值。

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM