登录
首页 >  Golang >  Go问答

配置 Go 代码覆盖率在 Azure DevOps 中

来源:stackoverflow

时间:2024-03-01 11:45:25 216浏览 收藏

大家好,我们又见面了啊~本文《配置 Go 代码覆盖率在 Azure DevOps 中》的内容中将会涉及到等等。如果你正在学习Golang相关知识,欢迎关注我,以后会给大家带来更多Golang相关文章,希望我们能一起进步!下面就开始本文的正式内容~

问题内容

我不清楚我的 golang 项目的代码覆盖率如何在 azure devops 中发挥作用。 我的专业知识是看到这样的东西:

缺少代码覆盖率

我很困惑,因为我看到这个提示“设置代码覆盖率”:

但在“代码覆盖率”选项卡中是生成的 html 报告:

任务“发布代码覆盖率结果”中的警告

我在“发布代码覆盖率结果”任务中收到此警告

##[警告]忽略包含 html 内容的覆盖率报告目录,因为我们正在自动生成 html 内容

但是,当我使用 disable.coverage.autogenerate: 'false' 禁用 html 生成时,“代码覆盖率”选项卡下不会显示任何报告,仅显示消息“代码覆盖率报告无法呈现,因为未找到报告 html。请验证在发布代码覆盖率时是否指定了包含 html 报告的“报告目录”。”

azure 管道

这是我的管道:

trigger: 
 - master

pool:
   vmImage: 'ubuntu-latest'

variables:
  GOBIN:  '$(GOPATH)/bin'
  GOPATH: '$(system.defaultWorkingDirectory)/gopath'
  disable.coverage.autogenerate: 'false'

steps: 

- script: |
    echo '##vso[task.prependpath]$(GOBIN)'
    echo '##vso[task.prependpath]$(GOROOT)/bin'

- task: GoTool@0
  inputs:
    version: '1.14.2'
- task: Go@0
  inputs:
    command: 'get'
    arguments: '-d ./...'
    workingDirectory: '$(System.DefaultWorkingDirectory)'

- script: |
    go get github.com/jstemmer/go-junit-report
    go get github.com/axw/gocov/gocov
    go get github.com/AlekSi/gocov-xml
    go test -v -coverprofile=coverage.txt -covermode count ./... 2>&1 | go-junit-report > report.xml
    gocov convert coverage.txt > coverage.json
    gocov-xml < coverage.json > coverage.xml
    mkdir coverage
  workingDirectory: '$(System.DefaultWorkingDirectory)'
  displayName: 'Run unit test'

- task: PublishTestResults@2
  inputs:
    testRunner: JUnit
    testResultsFiles: $(System.DefaultWorkingDirectory)/**/report.xml

- task: PublishCodeCoverageResults@1
  inputs:
    codeCoverageTool: Cobertura 
    pathToSources: '$(System.DefaultWorkingDirectory)'
    summaryFileLocation: $(System.DefaultWorkingDirectory)/**/coverage.xml
    reportDirectory: $(System.DefaultWorkingDirectory)/**/coverage
    failIfCoverageEmpty: true

完整日志:https://gist.githubusercontent.com/dhcgn/682dd6027d8d0703cb4dc6d5ae2fbead/raw/9d2bb96d1d8a0721335d56a121a5eed254ac014f/pipeline.log


解决方案


您希望在构建摘要中看到的代码覆盖率报告是旧的构建管道 UI 页面。

现在,Azure DevOps 服务已实施新的 multi-stage pipelines UI 页面。代码覆盖率报告已移至代码覆盖率选项卡,如您现在所看到的那样。

您期望在上面的屏幕截图中看到的构建摘要页面不再可用,因为允许切换回旧构建管道 UI 页面的此功能切换已被删除。请参阅here

但是,您仍然可以在 Azure DevOps Server 2019/TFS 2018 /TFS 2017 中看到旧的管道 UI 页面。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>