问题标签 [coverlet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
450 浏览

.net - 如何在不使用 Sdk 样式项目的 .NET 项目上运行 Coverlet?

我想试试coverlet,但我能找到的唯一例子是关于运行它dotnet.exe。我的问题是我们的项目不使用 Sdk 样式,它们是针对 .NET 4.7.2 的旧 .NET 项目

我怎样才能和他们一起跑床单?

0 投票
1 回答
5348 浏览

.net-core - 是什么导致 Docker 映像中出现“找不到数据收集器‘XPlat 代码覆盖率’”错误?

我在 DevOps Server 中设置了一个构建,它只运行一个 docker 构建、运行一个容器并从中收集测试结果。Dockerfile 使用 mcr.microsoft.com/dotnet/core/sdk:2.2 映像作为其基础,在此基础上我安装了 powershell。

运行基础镜像并执行dotnet --version确认它上面有 .NET Core 2.2.301。我的测试项目引用了coverlet.collector 1.0.1 和Microsoft.NET.Test.Sdk 16.1.0。从我看到的 Coverlet 文档来看,这应该足以生成测试覆盖率结果。

当我不使用 Coverlet 时,我的测试运行良好并生成预期的 trx 文件。

这是我的 dockerfile 的简化版本:

这是运行命令:

docker run -v "c:\testresults:C:\app\webapiapp.test\out\TestResults" --rm myrepo/webapiapp:$(BUILD.BUILDID)-test

这是 webapiapp.test.csproj:

我得到“找不到数据收集器'XPlat Code Coverage'”而不是覆盖率文件。我错过了什么?

0 投票
1 回答
234 浏览

.net - .net 核心和全局阈值中未测试项目的代码覆盖率

我设置了一个 Azure DevOps CI 管道来收集使用 Coverlet 获得的代码覆盖率。我注意到,如果项目以某种方式被项目测试,报告将包含有关未测试的类/代码的信息,但例如,如果开发人员添加了一个没有相应测试项目的新项目,则代码不会显示在最终报告中。此外,似乎只能为每个测试项目指定阈值(例如,我可以有一个由两个不同的测试项目测试的项目:两者都有助于原始项目的代码覆盖率统计)。我正在使用“PublishCodeCoverageResults”管道任务来发布代码覆盖率结果。如果整体代码覆盖率没有达到特定阈值,有没有办法让 CI 构建失败?

0 投票
1 回答
5424 浏览

powershell - 为什么 dotnet 测试工具不创建代码覆盖率报告?

我的项目结构如下:

运行我的测试的命令我使用以下输入:

在哪里$folder指向我的 Application.Tests 路径:C:\projects\coredemoapp\CoreDemoApp.Tests$rootC:\projects\coredemoapp\

所有测试都成功运行。但是,问题是coverage.jsoncoverage.opencover.xml没有创建文件。

我也尝试coverlet直接使用以下命令:

,一切都在我的本地机器上运行,具有指向 dll 的显式路径。但是在以前面的命令运行命令的情况下$folder.FullName<path to assembly>coverlet 假定一个调试dll 的路径,而不是它应该的发布版本并且失败。

链接到完整的构建脚本

0 投票
0 回答
88 浏览

windows - CMD - 忽略引号内的空格

我知道这是一个非常琐碎的问题。我已经尝试过并且失败了。

虽然它与问题无关,但我想做的是使用coverlet.console 为应用程序获取代码覆盖率,如下所示:

targetargs 是从 Coverlet 内部调用的。这里,vstest是宿主系统中的一个环境变量。但是,我不能也不想设置那个 env 变量,所以我尝试使用 exe 的路径直接调用,如下所示:

现在,我无法使用此变量访问该 exe,因为路径中的空格不会被忽略。

我可以在这里做什么来获取参数字符串中的那个 exe 文件?

更新:

根据评论,这样做我能够达到预期的结果。

0 投票
2 回答
612 浏览

yaml - 在 macOS DevOps 管道中运行 Coverlet 和报告生成器

我有一个用 dotnet core 2.1 编写的 C# 项目,我正在尝试为其设置 Azure 管道,以便在 macOS 代理上运行时获得代码覆盖率(我可以更改为其他代理,但理想情况下管道是系统不可知论者)。到目前为止,我一直试图让Coverletreportgenerator一起工作,但我一直遇到问题,例如Could not find data collector 'XPlat Code Coverage'.

我想要发生的是确定代码覆盖率(似乎是哪个coverlet),并以某种方式在Azure管道中生成和显示代码覆盖率报告。

这是我到目前为止的管道:

0 投票
1 回答
1525 浏览

azure-pipelines - 使用 Azure Pipelines 和 Coverlet 创建测试报告不会创建 coverage.opencover.xml 文件

这是我的解决方案结构:

构建脚本工作正常,但我无法让它coverage.opencover.xml在根文件夹中创建封面结果作为格式。

我的 azure-pipelines.yml:

结果,我得到了该Testing **/*.UnitTests/*.csproj任务的以下输出:

开始:测试 **/ .UnitTests/ .csproj ======================================= ======================================== 任务:.NET Core 描述:构建,测试,打包,或发布 dotnet 应用程序,或运行自定义 dotnet 命令 版本
:2.162.0 作者:Microsoft Corporation 帮助: https ://docs.microsoft.com/azure/devops/pipelines/tasks/build/dotnet-core-cli ==================================================== ============================= C:\windows\system32\chcp.com 65001 活动代码页:65001 "C:\Program Files \dotnet\dotnet.exe" 测试 d:\a\1\s\BlazorApp.UnitTests\BlazorApp.UnitTests.csproj --logger trx --results-directory d:\a_temp --configuration Release /p:CollectCoverage=true / p:CoverletOutput=d:\a\1\coverage /p:CoverletOutputFormat=opencover /p:Exclude=[ Tests] d:\a\1\s\BlazorApp.UnitTests\bin\Release\netcoreapp3.1\ 的测试运行BlazorApp.UnitTests.dll(.NETCoreApp,Version=v3.1) Microsoft (R) 测试执行命令行工具版本 16.3.0 版权所有 (c) Microsoft Corporation。版权所有。

开始测试执行,请稍候...

共有 1 个测试文件与指定的模式匹配。结果文件:d:\a_temp\VssAdministrator_fv-az74_2019-12-25_11_32_03.trx

试运行成功。总测试:1 通过:1 总时间:1.5842 秒

问题是coverage.opencover.xml即使yml参数定义了应该执行的封面设置,也没有创建文件。如果codecov.ps1PowerShell 脚本可以找到现在丢失的测试结果文件,它就会起作用。

0 投票
2 回答
1186 浏览

c# - 当覆盖率太低(使用 C# 和 dotnet 测试)时,如何使 Jenkins 阶段失败并变红?

我正在使用 C#、coverlet.msbuild 和 Jenkins Cobertura 适配器。我的 Jenkinsfile 中大致有这个:

如果包级别的覆盖率低于 50%,这会使我的 Jenkins 构建失败。到现在为止还挺好。

但是,当构建因此而失败时,它是对用户不利的并且很难理解为什么。Blue Ocean 中的“运行单元测试”阶段为绿色。

当构建失败时,我可以让这个阶段变成红色,以便更容易看到错误是什么?

0 投票
0 回答
301 浏览

.net - 即使未达到阈值,Coverlet 也始终返回 0

我在我的 Linux CI 盒子里运行 Coverlet。现在,在我运行下面的命令之后,无论是否满足阈值,当我检查 $? 值,该命令始终返回 0。

如果所有测试都通过,并且单元测试覆盖率高于阈值,我需要 Coverlet 返回 0,如果任何测试失败或未达到阈值,则返回 1。

有没有人以前见过这个问题,或者知道如何解决它?谢谢!

0 投票
1 回答
23 浏览

.net - dotnet 工具版本在哪里定义?

dotnet 工具是如何进行版本化的,该版本号在代码中设置在哪里?

这个 dotnet 工具的最新版本是 1.7.0 https://github.com/tonerdo/coverlet

1.7.0 在哪里定义?我在任何地方都没有看到它,它不是汇编版本

我想安装旧版本,但我可以找到列出工具以前版本的任何 dotnet 命令。

具体来说,我需要一个支持netcoreapp2.1的coverlet版本