问题标签 [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 投票
3 回答
4006 浏览

.net - 您可以使用 Coverlet 获取 .NET Framework 项目中的代码覆盖率数据吗?

我有一个大型 .NET Framework 解决方案,并希望开始收集代码覆盖率数据作为我们构建管道的一部分(以及在我们的本地开发人员机器上)。

在 Coverlet GitHub 页面上,它说它支持 .NET Framework 项目,但所有示例都使用dotnet testCLI 命令。

是否可以为此使用 Coverlet,或者我应该查看 OpenCover 之类的东西?

0 投票
1 回答
374 浏览

c# - 如何将包含逗号的多值参数传递给 dotnet 命令行工具中的属性?

我想运行一个包含以下内容的命令:

dotnet test /p:Exclude=\"*Test*,*Requirement*\"

以上不是完整的命令,但足以引发解析错误。我在我的 C# 项目中使用 Coverlet NuGet 包,我想排除与这些名称匹配的所有项目。

我在这里这里都读过,将参数括在“转义引号”中应该可以做到,但它不起作用。我得到:

使用常规的非转义引号会给出相同的错误消息:

dotnet test /p:Exclude="*Test*,*Requirement*"

转义逗号会给出相同的错误消息:

dotnet test /p:Exclude=*Test*\,*Requirement*

注意:上面的例子可能不是正确的 Coverlet 语法。这暂时无关紧要。我只想能够将逗号分隔的值列表传递给一个参数。就目前而言,dotnet 在到达 Coverlet 之前很久就拒绝了我的语法。

我正在从 PowerShell 运行命令。

0 投票
2 回答
5583 浏览

c# - 是否可以在 Azure DevOps 中使用 Coverlet 获得 .NET Framework 项目的代码覆盖率?

我很容易配置为在 Azure DevOps 中获取.NET Core项目的覆盖结果,但项目没有运气.NET Framework
所以,我会很感激能得到这方面的建议,因为 Coverlet 文档清楚地表明我们也可以将它用于.NET Framework项目。这个问题有点像我的,但我没有看到任何答案, 你能用 Coverlet 在 .NET Framework 项目中获取代码覆盖率数据吗?

0 投票
1 回答
2653 浏览

c# - 如何将解决方案测试的代码覆盖结果文件输出到解决方案目录而不是测试项目目录

这是一个非常基本的问题,应该有一个简单的解决方案。我想将我的单元测试项目的所有代码覆盖率结果放在一个解决方案中,以便在单个目录中输出。目前,所有覆盖输出文件都被写入单独的测试项目文件夹中。我试图调查coverlet github问题,他们提到他们有一种解决方法(https://github.com/tonerdo/coverlet/pull/220)可以将所有覆盖文件合并为一个文件,但我不能不要将它们放入我的解决方案目录

我正在努力的是在/p:CoverletOutput参数中指定解决方案目录。dotnet cli 中是否有一个特殊的参数来指向类似于我们在 msbuild 中的解决方案目录$(MSBuildProjectDirectory)

0 投票
1 回答
3433 浏览

.net - SonarCloud for .Net 解决方案中未显示代码和代码覆盖率的详细信息

在 SonarCloud 中查看代码分析的详细信息时遇到问题。

我正在工作的是一个带有 Coverlet 的 .Net Core 应用程序。我确实看到结果已上传并显示了报道。但是,我看不到仪表板,“代码”选项卡不显示代码,度量也不提供详细信息。

我的 Github 项目已链接,如我所见,结果已上传。我想知道为什么我看不到代码和详细的覆盖范围。我不熟悉 .NET 代码,而且 SonarQube 已经安装在其他项目中,所以我想知道我是否忘记了什么。我可以看到针对特定分支的两个 PR 构建的结果。

所以我的问题是如何查看细节。难道是我合并后它才显示在主分支上吗?

这是一个 .NET Core 项目。我对 .NET Framework 应用程序也有同样的问题。

Branch / PR的覆盖范围

没有代码...

无详细措施

0 投票
0 回答
218 浏览

azure-devops - 在 azure devops 中运行单元测试时,覆盖率返回 %NaN%

我有一个 dot net core 版本:'3.0.100',基于 'ubuntu-latest',我正在尝试获取代码覆盖率报告。

我一直在使用 Coverlet 生成 Cobertura 文件,然后可以使用 PublishCodeCoverageResults@1 发布到 Devops 管道代码覆盖率查看器。

我使用了一个阶段名称构建来构建项目并生成工件并发布它们。在另一个名为单元测试的阶段,我将下载工件并使用先前构建的工件。

但是当我通过指定下载这些工件的工作目录来运行单元测试时,到目前为止一切都很好,但是当它在单元测试作业中生成代码覆盖率报告时,它会生成 NaN% 值。 在此处输入图像描述

我已经尝试了所有可能的方法来使用工作路径目录并恢复 nuget 包。但是没有运气对我有用。我什至搜索过这个问题,我找到了一个,但这对我没有用

当我尝试在一个阶段本身运行构建和单元测试时,它成功生成了代码覆盖率报告,但是将其放在另一个阶段并下载以前的构建工件让我遇到了问题。

我将如何实现这一目标?

0 投票
1 回答
3716 浏览

c# - .net 应用程序的 gitlab ci/cd 中的代码覆盖率?

我最近开始使用,C#并且正在研究我们拥有的一个遗留系统。我试图弄清楚这个遗留系统的代码覆盖率是多少。这是我的Sample.UnitTests.csproj文件:

我做了一些研究,发现我们可以使用coverlet哪个可以生成cobertura样式报告。我完全按照这里提到的在我的 mac 盒子上进行操作,一切正常,我可以看到在我的控制台上正确生成了报告,它还生成index.html了我们可以用来可视化的文件。

现在,因为我们gitlab ci/cd为我们的项目使用管道 - 有什么方法可以让我的.gitlab-ci.yml文件的这一部分,以便它可以在构建发生时自动为我生成报告,并且我团队中的每个人都可以成功地看到它。因为到目前为止它都是手动的,因为我需要在我的本地 mac 机器上运行上述命令,我只能通过单击index.html文件从控制台中看到它。

这些是我的.gitlab-ci.yml文件阶段,如下所示。如果需要,我也可以提供我的yml文件,但是任何可以演示如何执行此操作的简单示例都会有很大帮助。我尝试了很多搜索,但根本找不到关于如何通过使用.net 应用程序coverletcobertura样式报告的 gitlab 管道来做到这一点。

如果需要,这也可以通过 webhook 完成吗?

0 投票
1 回答
4635 浏览

unit-testing - 如何排除床单覆盖率报告中的方法?

如何使用coverletand将方法从代码覆盖率报告中排除reportgenerator.runsettings按预期排除整个命名空间,但使用[ExcludeFromCodeCoverage]属性排除整个文件,而不仅仅是目标方法。有关我尝试过的内容,请参阅下面的评论.runsettings

相关.runsettings线路:

更新:这似乎是最近解决的问题coverlet。更新解决了这个问题。https://github.com/coverlet-coverage/coverlet/issues/809

0 投票
1 回答
1561 浏览

c# - C# Coverlet 结果始终为空

有 .net core 3.1 Microsoft.net.sdk 项目,有很多异步 xUnit 测试。

  • 尝试-将coverlet.msbuild 2.9.0添加到项目中,然后运行: dotnet test Common\Common.csproj /p:CollectCoverage=true / 显示100%,但创建了一个空的覆盖文件
  • 尝试过-将coverlet.collector 1.3.0添加到项目中,然后运行: dotnet test Common\Common.csproj --collect:"XPlat Code Coverage" 在testresults\{guid}\coverage.cobertura.xml中创建了一个文件-但它只是说lines-covered=0

而标准输出是说 88 次测试在 4 秒内运行。我究竟做错了什么?

0 投票
1 回答
619 浏览

.net-core - 使用 nugget coverlet.msbuild / 2.3.1 在 azure devops 上运行单元测试时出错

当我运行 dotnet 测试任务时,测试运行正确,但是在生成 xml 格式的报告文件时,出现以下错误:

/home/adminuser/.nuget/packages/coverlet.msbuild/2.3.1/build/netstandard2.0/coverlet.msbuild.targets(17,5):错误:找不到方法:'Void System.IO.FileStream.. ctor(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare)'。

项目配置文件(.csproj)如下:

注意: 管道运行良好,但从前一刻到下一刻,它开始产生以下错误