gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 12:36:42 24 4
gpt4 key购买 nike

我很容易配置为获取 .NET Core 的覆盖结果Azure DevOps 中的项目,但没有运气 .NET Framework项目。所以,我很高兴能得到这方面的建议,因为床单文档清楚地表明我们也可以将它用于 .NET Framework项目。
这个问题和我的有点相似,但我在那里没有看到任何答案,
Can you use Coverlet to get code coverage data in a .NET Framework project?

最佳答案

最后,我找到了一个更简单的解决方案。这里是,

  • 添加 <IsTestProject>true</IsTestProject > 在测试项目文件中。
  • 运行命令 dotnet test/dotnet test /p:CollectCoverage=true在测试项目位置(其中
    TestProject.csproj 存在)
  • 运行命令后可能会出现以下错误,

    未找到导入的项目“C:\Program Files\dotnet\sdk\3.1.100\Microsoft\VisualStudio\v16.0\WebApplications\Microsoft.WebApplication.targets”。
  • 在项目文件(您要对其进行单元测试并获得代码覆盖率)中,更改以下内容
    进口声明

    这,<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
    致,<Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />

  • 这对我在本地和 Azure DevOps 都有效。

    注意:不要忘记在您的测试项目中安装 Coverlet.msbuild。

    更新:

    仅当您没有收到“.Microsoft.WebApplication.targets 未找到”错误时,上述方法才有效。评论建议的导入语句会导致最后发布失败,这是显而易见的。所以,我最终使用了 Coverlet.Console,它运行顺利,没有任何错误。但是,要使用coverlet.console,我需要 TestProject.dll文件而不是项目文件(.csproj);所以我不得不为测试项目添加额外的构建任务。 Here是如何安装和使用 Coverlet.console 的文档

    希望这对最终登陆这里的人有所帮助。

    关于c# - 是否可以在 Azure DevOps 中使用 Coverlet 获得 .NET Framework 项目的代码覆盖率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60707310/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com