- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以这个过程可以从https://learn.microsoft.com/en-us/azure/devops/pipelines/ecosystems/dotnet-core?view=azure-devops#collect-code-coverage推导出来并包含以下步骤:
可以使用以下 YAML 模板实现这些步骤:
parameters:
BuildConfiguration: Debug
steps:
- task: DotNetCoreCLI@2
name: Test
displayName: Test
inputs:
command: 'test'
publishTestResults: false
arguments: '-c ${{ parameters.BuildConfiguration }} --no-build -l trx -r $(Common.TestResultsDirectory)\tests --collect "Code coverage"'
- task: PublishTestResults@2
displayName: Publish Test Results
inputs:
testResultsFormat: VSTest
testResultsFiles: '*.trx'
searchFolder: $(Common.TestResultsDirectory)\tests
testRunTitle: $(Build.DefinitionName)-$(Build.BuildNumber)
condition: succeededOrFailed()
- powershell: |
$cc = "$(Get-ToolFolderFromNuGet Microsoft.CodeCoverage)\..\build\netstandard1.0\CodeCoverage\CodeCoverage.exe"
$BinaryCoverageFile = (Get-Item "$(Common.TestResultsDirectory)\tests\*\*.coverage").FullName
& $cc analyze /output:$(Common.TestResultsDirectory)\vstest-coverage.xml $BinaryCoverageFile
displayName: Convert Coverage Result To Xml
- task: DotNetCoreCLI@2
inputs:
command: custom
custom: tool
arguments: install --tool-path . dotnet-reportgenerator-globaltool
displayName: Install ReportGenerator tool
- script: .\reportgenerator.exe -reports:$(Common.TestResultsDirectory)\vstest-coverage.xml -targetdir:$(Common.TestResultsDirectory)\coverage\report -reporttypes:"Cobertura"
displayName: Create Cobertura Coverage Report
- task: PublishCodeCoverageResults@1
displayName: Publish Coverage Results
inputs:
codeCoverageTool: 'Cobertura'
summaryFileLocation: '$(Common.TestResultsDirectory)/coverage/report/Cobertura.xml'
failIfCoverageEmpty: true
它使用我的 powershell 函数 Get-ToolFolderFromNuGet
从 NuGet 下载包,但除此之外没有使用自定义代码。
无论如何,问题是发布测试结果任务将二进制覆盖结果作为超链接发布在覆盖结果应该是的同一选项卡中:
这是没用的。如果我注释掉 Publish Test Results,覆盖页面会显示预期的结果:
但是现在我当然失去了测试页面:
有谁知道如何解决这个难题?
附言
我在这里打开了一个 bug - https://github.com/microsoft/azure-pipelines-tasks/issues/12670
编辑 1
我试图在最后发布测试结果,甚至删除了二进制覆盖率结果文件。没有任何帮助。
最佳答案
通过检查发布测试结果任务的诊断日志,我设法弄清楚了如何解决它。事实上,从日志中:
2020-04-10T15:48:12.1799774Z ##[debug]pattern: '*.trx'
2020-04-10T15:48:12.1839752Z ##[debug]findPath: 'd:\_wf\06\13\TestResults\tests'
2020-04-10T15:48:12.1840795Z ##[debug]statOnly: 'false'
2020-04-10T15:48:12.1843783Z ##[debug]findPath: 'd:\_wf\06\13\TestResults\tests'
2020-04-10T15:48:12.1844681Z ##[debug]findOptions.allowBrokenSymbolicLinks: 'true'
2020-04-10T15:48:12.1845119Z ##[debug]findOptions.followSpecifiedSymbolicLink: 'true'
2020-04-10T15:48:12.1845244Z ##[debug]findOptions.followSymbolicLinks: 'true'
2020-04-10T15:48:12.1850467Z ##[debug] d:\_wf\06\13\TestResults\tests (directory)
2020-04-10T15:48:12.1858807Z ##[debug] d:\_wf\06\13\TestResults\tests\1f627391-dd45-48b3-af92-5213c471eb04 (directory)
2020-04-10T15:48:12.1864156Z ##[debug] d:\_wf\06\13\TestResults\tests\tfsbuild_TDC5DFC1BLD24_2020-04-10_11_47_29 (directory)
2020-04-10T15:48:12.1868508Z ##[debug] d:\_wf\06\13\TestResults\tests\tfsbuild_TDC5DFC1BLD24_2020-04-10_11_47_29\In (directory)
2020-04-10T15:48:12.1873069Z ##[debug] d:\_wf\06\13\TestResults\tests\tfsbuild_TDC5DFC1BLD24_2020-04-10_11_47_29\In\TDC5DFC1BLD24 (directory)
2020-04-10T15:48:12.1880777Z ##[debug] d:\_wf\06\13\TestResults\tests\tfsbuild_TDC5DFC1BLD24_2020-04-10_11_47_29\In\TDC5DFC1BLD24\tfsbuild_TDC5DFC1BLD24_2020-04-10.11_47_23.coverage (file)
2020-04-10T15:48:12.1884045Z ##[debug] d:\_wf\06\13\TestResults\tests\tfsbuild_TDC5DFC1BLD24_2020-04-10_11_47_29.trx (file)
2020-04-10T15:48:12.1885576Z ##[debug]7 results
所以在那里找到了二进制覆盖文件。但是它原来的位置是不同的,我们可以从测试任务本身的常规构建日志中看到:
2020-04-10T15:47:54.0912521Z M i c r o s o f t ( R ) C o v e r a g e C o l l e c t i o n T o o l V e r s i o n 1 6 . 0 . 3 0 3 1 9 . 3 0 0 2
2020-04-10T15:47:54.0913009Z
2020-04-10T15:47:54.0913107Z
2020-04-10T15:47:54.0913209Z C o p y r i g h t ( c ) M i c r o s o f t C o r p o r a t i o n . A l l r i g h t s r e s e r v e d .
2020-04-10T15:47:54.0913270Z
2020-04-10T15:47:54.0913307Z
2020-04-10T15:47:54.0913340Z
2020-04-10T15:47:54.0913400Z
2020-04-10T15:47:54.3182888Z Results File: d:\_wf\06\13\TestResults\tests\tfsbuild_TDC5DFC1BLD24_2020-04-10_11_47_29.trx
2020-04-10T15:47:54.3183717Z
2020-04-10T15:47:54.3184201Z Attachments:
2020-04-10T15:47:54.3184419Z d:\_wf\06\13\TestResults\tests\1f627391-dd45-48b3-af92-5213c471eb04\tfsbuild_TDC5DFC1BLD24_2020-04-10.11_47_23.coverage
2020-04-10T15:47:54.3196805Z Test Run Successful.
2020-04-10T15:47:54.3197219Z Total tests: 445
2020-04-10T15:47:54.3197713Z Passed: 445
2020-04-10T15:47:54.3199584Z Total time: 30.1160 Seconds
因此,原始二进制覆盖文件位于 d:\_wf\06\13\TestResults\tests\1f627391-dd45-48b3-af92-5213c471eb04\tfsbuild_TDC5DFC1BLD24_2020-04-10.11_47_23.coverage
,但它被复制到 d:\_wf\06\13\TestResults\tests\tfsbuild_TDC5DFC1BLD24_2020-04-10_11_47_29\In\TDC5DFC1BLD24\tfsbuild_TDC5DFC1BLD24_2020-04-10.11_47_23.coverage
我的错误是只删除了原来的位置。当在两个地方都删除时,代码覆盖率页面变得如预期 - 不再有无用的超链接,是的实际覆盖率。
YAML 中更正后的 powershell 任务如下所示:
- powershell: |
$cc = "$(Get-NuGetPackageBaseFolder Microsoft.CodeCoverage)\build\netstandard1.0\CodeCoverage\CodeCoverage.exe"
$BinaryCoverageFile = Get-Item "$(Common.TestResultsDirectory)\tests\*\*.coverage"
& $cc analyze /output:$(Common.TestResultsDirectory)\vstest-coverage.xml $BinaryCoverageFile.FullName
Remove-Item (Get-ChildItem -Path "$(Common.TestResultsDirectory)\tests" -Recurse -Filter $BinaryCoverageFile.Name).FullName
displayName: Convert Coverage Result To Xml
当然,发布测试结果任务必须移到此任务之后。
关于.net-core - 如何从 dotnet test --collect "Code coverage"生成的 VS 覆盖率发布 Cobertura 覆盖率报告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61143454/
您好,我已经在互联网上进行了大量搜索,但是我找不到为我们的golang项目生成html coverage文件的简便方法,但至少我可以得到如下所示的coverage.dat文件 mode: set pa
我正在尝试为 cython 模块生成代码覆盖率报告,并面临问题。 我有一个简单的 C++ 代码:apple.h 和 苹果.cpp 文件。 cpp 文件很简单: using namespace std;
我正在开发一个包含一些测试用例的 module1。我有另一个模块2,它可以运行这些测试用例并生成覆盖范围。目前 .coverage 文件夹是在调用 module2 的当前工作目录中生成的。有没有办法指
我最近将代码覆盖引入了我的项目。它创建了一份我可以查看的报告,而且它似乎运行良好。 唯一的问题是它缺少我的测试——我现在没有很好的代码覆盖率,但它报告所有类和其他文件的覆盖率为 0%。 我可以看到正在
我正在尝试将我当前的 AngularJS 项目与 Karma Coverage 集成。请在下面找到 package.json 和我的 karma 配置 . Package.json { "name
我正在尝试为我的 gitlab 项目显示准确的覆盖率徽章。 问题是我有几个包,在 gitlab-ci.yml,我运行 go test $(go list ./... | grep -v /vendor
由于贡献线,Jenkins 仪表板上的“W”列显示了我所有 PHP 项目的 Storm Clover Coverage: Conditionals 0% (0/0) 因为 PHP_CodeCovera
我能够按照以下步骤获得代码覆盖率报告, 启用对所需构建类型的覆盖(例如调试) buildTypes { 调试{ testCoverageEnabled 真 } } 应用Jacoco插件并设置版本 应用
当 rcov 生成报告时,它会显示每个文件的“总覆盖率”和“代码覆盖率”。这两个指标有什么区别? 最佳答案 来自 http://www.rubydoc.info/github/relevance/rc
我正在尝试获取基于 arm 的嵌入式系统的代码覆盖率。使用 x86 进行交叉编译。基本上,我有一个交叉分析问题。 对于我想要生成代码覆盖率数据的应用程序,我定义了一个信号处理程序,我在其中调用 __g
与 cobertura-maven-plugin可以使用 ignoreTrivial 从代码覆盖率中排除 setter 和 getter选项。 jacoco-maven-plugin是否也有这种可能?
有没有人用 Jenkins CI 安装了 Grails -code-coverage 插件? 如果可以,请指导我完成设置? 最佳答案 您可以试试这个教程:code coverage 关于code-co
系统定义: 2012 macbook pro 运行 Sierra, Docker 版本:17.12.0-ce-mac49 (21995) 问题: 我在容器中使用“覆盖运行”运行我的 python 应用
尝试启动并运行代码覆盖率,我只是先阅读文档。我发现一些文章提到了使用 --coverage 标志进行构建,而其他文章提到了 --ftest-coverage。 两个描述似乎都说它们做同样的事情,但我不
尽管安装了插件,但我似乎无法使用 Nose 获得代码覆盖率。 关于如何解决这个问题的任何想法? 12:15:25 ~/sandbox/ec$ nosetests --plugins Plugin xu
我正在尝试在预先提交的钩子(Hook)中对暂存文件运行测试。到目前为止,一切都很好。可以使用 pre-commit和 lint-staged NPM 包。 来自 package.json 的片段: {
我有 .coverage 文件指示由 coverage.py 生成的我的 Django 项目的代码覆盖率: coverage run --branch --source='.' manage.py t
我试图让 Cobertura 在我的 ant 脚本中运行。一切顺利(源代码构建、junit 测试、cobertura 报告(xml/html);但在 html 报告中,代码覆盖率始终为 0% ...
因为团队内部开启了一个持续的前端代码质量改进计划,其中一个专项就是TS类型覆盖率,期间用到了 type-coverage 这个仓库,所以借这篇文章分享一下这个工具,并顺便从源码阅读的角度来
我通过在服务器启动脚本中将 -javaagent 设置为 jvm 选项来创建 jacoco.exec 文件。现在我想使用覆盖率执行文件生成覆盖率报告。 我已经了解了所有 Jacoco 报告生成选项(m
我是一名优秀的程序员,十分优秀!