SonarQube 测试覆盖 .NET 5

2024-02-09

我想在本地 SonarQube 实例(在 Windows 上)中显示 .NET 5 单元测试的测试覆盖率。

dotnet sonarscanner begin /k:"MyProject" /d:sonar.host.url="http://localhost:9000"  /d:sonar.login="<token>" /d:sonar.cs.opencover.reportsPaths="**\TestResults\*\*.xml"

dotnet build

dotnet test --no-build --collect:"XPlat Code Coverage"

dotnet sonarscanner end /d:sonar.login="<token>"

The dotnet test命令生成的覆盖率报告为coverage.cobertura.xml文件在<TestProjectDir>.TestResults\<some-guid>\ folder.

在日志中我可以看到以下警告:WARN: Could not import coverage report '<MyTestProject>\TestResults\a4af5812-7f80-469b-8876-3ea0c7c4c98d\coverage.cobertura.xml' because 'Missing root element <CoverageSession> in C:\Users\<Path>\TestResults\a4af5812-7f80-469b-8876-3ea0c7c4c98d\coverage.cobertura.xml at line 2'. Troubleshooting guide: https://community.sonarsource.com/t/37151

link https://community.sonarsource.com/t/coverage-troubleshooting-guide-for-net-code-coverage-import/37151从警告消息中,我只能看到Visual Studio 代码覆盖率, dotCover and 开放式封面/封面都支持。据我所知,从他们的GitHub 页面 https://github.com/coverlet-coverage/coverlet, is 开放式封面/封面是“XPlat 代码覆盖率”。

在我的测试项目中coverlet.collectorNuGet 包 v 3.0.3 已安装。

我缺少什么?

我发现这个相关问题:SonarQube:无法导入测试覆盖率 https://stackoverflow.com/questions/64914897/sonarqube-unable-to-import-test-coverage但这对我没有帮助,因为我无法使用dotCover.


经过大量的试验和错误,这是对我有用的解决方案。

我必须安装最新版本dotnet-sonarscanner and dotnet-reportgenerator-globaltool为了这个工作。我已经安装了报告生成器,但需要更新它以使用 SonarQube 报告类型。

dotnet tool install --global dotnet-sonarscanner --version 5.2.0
dotnet tool update dotnet-reportgenerator-globaltool -g --version 4.8.7

随着reportgeneratorcobertura 文件可以转换为 SonarQube 格式。

dotnet sonarscanner begin /k:"MyProject" /d:sonar.host.url="http://localhost:9000"  /d:sonar.login="<token>" /d:sonar.coverageReportPaths=".\sonarqubecoverage\SonarQube.xml"

dotnet build

dotnet test --no-build --collect:"XPlat Code Coverage"

reportgenerator "-reports:*\TestResults\*\coverage.cobertura.xml" "-targetdir:sonarqubecoverage" "-reporttypes:SonarQube"

dotnet sonarscanner end /d:sonar.login="<token>"

报告生成器支持的文件格式:https://github.com/danielpalme/ReportGenerator#supported-input-and-output-file-formats https://github.com/danielpalme/ReportGenerator#supported-input-and-output-file-formats

SonarQube通用测试数据格式:https://docs.sonarqube.org/latest/analysis/generic-test/ https://docs.sonarqube.org/latest/analysis/generic-test/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SonarQube 测试覆盖 .NET 5 的相关文章

  • 如何向WebRequest添加参数?

    我需要从 Web 服务调用一个方法 所以我编写了以下代码 private string urlPath http xxx xxx xxx manager string request urlPath index php org get or
  • 如何使用最小起订量模拟私有只读 IList 属性

    我试图嘲笑这个列表 private readonly IList
  • 无需登录即可在 Intranet 上获取 Web 应用程序的域\用户名

    我的 Intranet 上有一个 Web 应用程序 VS 2005 有几个页面不需要用户登录应用程序 反馈和默认页面 我正在尝试获取要显示和 或发送反馈的域名和用户名 有没有一种方法可以在不需要用户登录的情况下执行此操作 我试过了this
  • BufferBlock 连续

    我想使用以下方式实现消费者 生产者模式BufferBlock
  • 何时使用 C++ 私有继承而不是组合?

    你能给我一个具体的例子吗 什么时候使用私有继承优于组合 就我个人而言 我将使用组合而不是私有继承 但在某些情况下 使用私有继承可能是特定问题的最佳解决方案 正在阅读C faq http www parashift com c faq lit
  • 使用unittest时如何知道每次测试花费的时间?

    Unittest 仅显示运行所有测试所花费的总时间 但不单独显示每个测试所花费的时间 使用unittest时如何添加每个测试的计时 我想 目前不可能 http bugs python org issue4080 http bugs pyth
  • 如何检查号码是否只有唯一的数字?

    例如 2345 是唯一的数字 因为没有数字显示两次 但 3324 不是唯一的数字 因为 3 出现了两次 我尝试使用 但我 代码 显示但我没有得到数字我得到了数字 编辑 你不能使用字符串 number 10 number 100 number
  • ASMX Web 服务,测试表单仅在本地计算机上适用于一种 WebMethod

    我有一个正在测试的 ASMX WebService 并且在大多数方法上我都可以使用测试表单进行测试 然而 我确实有一种方法 测试表上写着 The test form is only available for requests from t
  • 为什么我在 WinForms 列表框中得到“System.Data.DataRowView”而不是实际值?

    每当我运行代码并尝试查看highscore我在列表框中得到的只是System Data DataRowView 谁能明白为什么吗 Code MySqlConnection myConn new MySqlConnection connStr
  • 从 Golang 调用 C 函数

    我想在 Golang 中编写控制器逻辑并处理 json 和数据库 同时在 C 中使用我的数学处理模型 在我看来 调用 C 函数的开销必须尽可能低 就像设置寄存器 rcx rdx rsi rdi 一样 执行一些操作fastcall 并获取 r
  • 使用 catch all 字典属性将 json 序列化为对象

    我想使用 JSON net 反序列化为对象 但将未映射的属性放入字典属性中 是否可以 例如给定 json one 1 two 2 three 3 和 C 类 public class Mapped public int One get se
  • Web 文本编辑器中的 RTF 格式

    网络上是否有支持 RTF 格式文档输入的文本编辑器 我知道这对 webdev 来说有点奇怪 但我需要从数据库中读取 RTF 文档 并在基于 Web 的文本编辑器中对其进行编辑 然后将其存储回 RTF 中 在我在转换工具上投入太多资金之前 我
  • 文件加密与解密问题

    我一直在尝试在 VC Express 2010 中加密和解密文件 我见过的所有教程和文档都需要两个FileStreams 来加密文件 一个用于读取未加密的版本 另一个用于加密 当我实际编写代码时 它不断抛出错误 告诉我它无法打开该文件 因为
  • 如果项目包含多个文件夹,如何使用 Add-Migration

    我想Add Migration使用我的 DbContext 但出现错误 The term add migration is not recognized as the name of a cmdlet function script fil
  • List 或其他类型上的 string.Join

    我想将整数数组或列表转换为逗号分隔的字符串 如下所示 string myFunction List
  • 动态菜单创建IoC

    我想知道是否有人知道我如何创建如何使用 AutoFac 之类的东西来让我动态地允许 dll 创建自己的表单和菜单项以在运行时调用它们 所以如果我有一个 员工 dll 新入门表格 证书表格 供应商 dll 供应商详细信息来自 产品形态 在我的
  • 如何使用“路径”查询 XDocument?

    我想查询一个XDocument给定路径的对象 例如 path to element I want 但我不知道如何继续 您可以使用以下方法System Xml XPath Extensions http msdn microsoft com
  • 检查另一种形式的线程是否仍在运行

    我有一个涉及两个窗体的 Windows 窗体应用程序 子表单用于将数据导出到 CSV 文件 并使用后台工作者写入文件 当这种情况发生时 我隐藏了表格 当后台工作程序运行时 父窗体仍然处于活动状态 因此即使后台工作程序正在写入文件 用户也可以
  • 是否可以检测流是否已被客户端关闭?

    简要介绍一下情况 我有一项服务可以通过套接字接收信息并发送回复 连接不安全 我想设置另一个可以为这些连接提供 TLS 的服务 这个新服务将提供单个端口并根据提供的客户端证书分发连接 我不想使用 stunnel 有几个原因 其中之一是每个接收
  • 有没有办法在 C# 中仅通过文件名查找文件?

    我们现在使用绝对路径或相对路径在 C 应用程序中查找文件 如果文件位于当前工作目录下或 路径 之一下 有没有办法仅通过名称查找文件 使用绝对路径不好 使用相对路径也不够好 因为我们可能通过重命名或移动项目文件夹来更改项目结构 如果我们的代码

随机推荐

  • 在 C# 中使数据集线程安全

    使数据集在写入时线程安全的最佳模式是什么 我能通过谷歌搜索找到的最好的是 实现带锁的包装层 但乍一看这似乎相当混乱 有人可以推荐 指出一个好的解决方案吗 这似乎是一个已经在某个地方得到解决的问题 编辑 我还需要将数据集绑定到 ui 网格 这
  • 如何使用 Artifactory 查询语言查找最新的工件版本?

    到目前为止 我使用 Artifactory REST API 来确定 Maven 工件的最后一个版本 最后一个快照 groupId and artifactIid api search latestVersion g groupid a a
  • 无法加载此类文件 -- capistrano/setup (LoadError)

    我正在关注https gorails com deploy ubuntu 16 04 https gorails com deploy ubuntu 16 04 最初我有一个版本的 capistrano 3 8 1 我的问题最初是 nico
  • 为什么在 Win 64 上安装 Number::Format 失败?

    我正在尝试安装Number Format https metacpan org pod Number Format在 Windows 上与 Padre 一起使用 cpanm Number Format 我收到以下错误 我怎样才能解决这个问题
  • 使用 .NET 生成具有给定扩展名的唯一临时文件名[重复]

    这个问题在这里已经有答案了 可能的重复 如何使用 net 创建具有特定扩展名的临时文件 https stackoverflow com questions 581570 how can i create a temp file with a
  • 扫描仪NoSuchElementException

    我编写了一个程序 要求输入 3 个整数来输出三角形类型 一切都运行并编译成功 但是 似乎在要求用户查看是否要再次循环的部分 在线编译器输出错误 线程 main 中的异常 java util NoSuchElementException 在
  • Travis ci 上的 Python3 模块导入失败

    我制作了一个 Python 3 脚本来测试我的项目 剧本 https github com anestv server test有这样的结构 main py myRequest py external requests init py ma
  • Android 检查 EditText 中的空格

    我在 Android 中编辑文本时遇到问题 我有一个名为 Username 的字段 我希望每当有人写一个带有空格的用户名时 例如 Gaurav Arora 然后 在按下登录按钮时 它应该引发一个祝酒词或错误 我这样做了 我只是在文本观察器的
  • Android 如何从 SharedPreference 设置 EditTextPreference 的默认值?

    这次在同一个项目中 我面临一个稍微具有挑战性的问题 在 res xml 文件夹中的 settings xml 文件中
  • 从文件中删除扩展名[重复]

    这个问题在这里已经有答案了 可能的重复 如何从字符串中删除扩展名 只有真正的扩展名 https stackoverflow com questions 2395882 how remove extension from string onl
  • Play框架和OSGI

    是否可以将 Play 框架与 OSGI 集成以创建可插入组件 有人尝试过吗 如果您的意思是 使用 OSGi 创建 Play 模块 那么不 不支持它 如果您的意思是 将 Play 部署为 OSGi 模块 那么不 不支持它 公平地说 没有理由推
  • Ajax 加载后 AddThis 不起作用

    我有 AddThis js 用于将详细信息添加到日历的书签 这在页面加载时工作正常 但我使用 ajax 加载并替换 html 进行了一些过滤 之后 AddThis 按钮不显示 这是我的 ajax 代码 document ready func
  • 如何使用 jQuery 添加 DOM 元素?

    我有一个当前用来显示隐藏 div type 的函数 我怎样才能修改这段代码 而不是在隐藏的div中淡出 我可以将新的 div 添加到 DOM jQuery function Add Answer jQuery add answer clic
  • 将文本显示到另一个类的标签 - JFrame

    我有一个 GUI 屏幕 里面有一个标签 我现在想用文本设置标签 如下所示 Test 但它没有得到更新 我认为以下代码中有错误 我在 try 块中重新创建了 FrameTest 的新对象 FrameTest frame new FrameTe
  • 如何让puppeteer通过socks5代理工作?

    我购买了socsk5的代理服务器版本 所有手册中都有相同的示例 const browser await puppeteer launch headless true ignoreHTTPSErrors true defaultViewpor
  • 更改 Qt5 中 QGraphicsScene/View 中的像素图位置

    我有一个普通的 QGraphicsView QGraphicsScene 我想要做的就是将 QPixmap png 加载到图形并手动设置该 QPixmap 图像的位置 我找到了解决方案 但它们不适用于 Qt5 关于如何在 Qt5 上实现这一
  • ionic externalRootDirectory 无法写入 SD 卡

    我一直在尝试使用 IONIC 中的 cordova plugin file 插件写入 Android 设备上的 可移动 SD 卡 但没有成功 该文档指定了 externalRootDirectory 为 Android 外部存储 SD 卡
  • 无法建立 SSL 连接

    我正在使用第三方库 Splunk C SDK http dev splunk com csharp 在我的 ASP NET Core 应用程序中 我尝试通过此 SDK 连接到我的本地主机 Splunk 服务 但出现异常 System Net
  • ASP.NET - Ajax 控件工具包 - TabContainer 始终隐藏

    我使用以下代码将 TabContainer 添加到页面
  • SonarQube 测试覆盖 .NET 5

    我想在本地 SonarQube 实例 在 Windows 上 中显示 NET 5 单元测试的测试覆盖率 dotnet sonarscanner begin k MyProject d sonar host url http localhos