问题标签 [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.
visual-studio - 最新/上一个版本返回错误“无法评估表达式“[System.Version]::Parse('')”。版本字符串部分太短或太长。”
尝试使用 nuget 包管理器为 VS 2019 社区上的 C# 单元测试项目安装最新版本(3.1.0)的coverlet.msuild。我返回错误:“无法评估表达式“[System.Version]::Parse('')”。版本字符串部分太短或太长。C:\Users\robpi\source\repos\UnitTestProject1\包\coverlet.msbuild.3.1.0\build\coverlet.msbuild.targets
coverlet.msbuild 不安装
注意:我尝试安装早期版本(2.7.0) - 结果相同
code-coverage - 带有 Coverlet 的代码覆盖率 int .NET 5 Web API
我已经将 Web Api 构建为 .NET 5.0。
Web API 结构:
- 主 Web 项目(包含控制器和其他客户端特定数据)
- 基础设施项目(它具有更多业务逻辑的服务和存储库)
- 模型(数据库实体)
- 测试(用 Xunit 编写的测试用例)
- 我还添加了 XUnit.Coverlet.Collector 和 XUnit.Coverlet.MSBuild 项目。
问题:
我不确定如何引导 Coverlet 使用在Tests项目中编写的现有测试到主应用程序的控制器。
现在,我刚刚在 web api 中创建了一个控制器,并在收集器和 msbuild 项目中对其进行了测试。这工作正常,我可以为这个控制器生成代码覆盖,即 PrimeController.cs(然后还有其他类和控制器在报告中没有覆盖。)
如果我遵循这个工作流程,我必须在两个项目中复制所有测试两次。
有没有什么办法可以将我的 Tests 项目的引用提供给 msBuild 和 Collector?
任何帮助将非常感激。
c# - 测试项目中文件的 C# 代码覆盖率
我有一个项目A
,我在 test project 中为它编写了单元测试UnitTests
。我使用 MSTest。
我在文件中写了一些测试工具UnitTestUtils.cs
来简化测试项目A
。我还用单元测试介绍了这些实用程序。
现在的文件结构是
- 一个
- 程序.cs
- 单元测试
- 实用程序
- UnitTestUtils.cs
- Tests.cs <- (A_SomeTest1, A_SomeTest2, ...)
- UtilsTests.cs <- (Utils_SomeTest1, ...)
- 实用程序
所有测试A
都以 . 为前缀A_
,所有 utils 测试都以 . 为前缀Utils_
。
我想在本指令中使用like来运行测试工具的代码覆盖率。我可以为要运行的测试指定一个前缀 using ,但代码覆盖率不是我的测试工具的覆盖率,而是项目的覆盖率。coverlet.collector
dotnet test --filter Utils
A
如何为我的测试工具运行代码覆盖率?
testing - TeamCity + 报表生成器
早上好家伙
我正在使用 Coverlet 在 TeamCity 中运行我的测试。在我运行要生成报告的测试后,这工作正常。
上面的解决方案在本地工作,但是在 TeamCity 我有以下错误:
reportgenerator :术语“reportgenerator”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确并重试。
有什么我想念的想法吗?
.net - Coverlet 代码覆盖适用于 F# 项目,但不适用于 C# 和 VB
我正在尝试构建一个大型单存储库并在 Azure DevOps 中获得代码覆盖率结果。代码是 C#、VB 和 F# 的混合体,主要针对 .NET4.8 和一些 netstandard2.0。
前段时间,我使用 MS Build 构建解决方案的过程使用代码覆盖率进行部分 CI 构建,然后通过 dotnet test 和coverlet.collector 进行测试,如this answer中所述。
在我们决定尝试从 MS 托管代理迁移到自托管虚拟机规模集之前,此解决方案运行良好。使用库存的 Azure Marketplace Visual Studio 企业映像和带有 Visual Studio 构建工具的自定义映像,管道在很大程度上已停止产生结果。奇怪的是,它确实为 5 个左右的 F# 项目产生了代码覆盖率结果,但对于构成大部分代码库的 C#/VB 项目没有结果,并且没有产生错误消息。
单元测试的预期数量会报告给 Azure DevOps,因此看起来所有测试都在运行,但只有 F# 的测试具有代码覆盖率,即使所有 dll 都使用相同的命令进行测试。在本地运行的相同命令也会产生覆盖结果,所以我认为它一定是安装在 MS 托管代理和我的 VS Enterprise 机器上的映像中缺少某些组件。
我查看了MS Build Tools 文档和MS Hosted 代理的 repo,但我很难弄清楚缺少什么?
c# - 排除 ef 核心迁移文件的代码覆盖率
我想从代码覆盖率计算中排除所有自动生成的迁移文件。我无法更改dotnet test
构建管道中的命令,所以我想我唯一的朋友就是[ExcludeFromCodeCoverage]
属性。
棘手的部分是,每次添加新迁移时,我都需要手动查看所有生成的文件并确保我[ExcludeFromCodeCoverage]
对所有生成的类都有属性,这很好,但我想知道是否有更好的解决方案,我可以一次性完成全部?
迁移文件
和 ModelSnapshot 文件
对于快照文件,由于类名始终相同,我可以创建一个单独的文件MyContextModelSnapshot.CodeCoverage.cs
文件并将属性放在部分类上,但是迁移文件有解决方案吗?
coverlet.msbuild
如果这很重要,我正在合作。
sonarqube - Coverlet/Sonarqube 将覆盖的代码显示为未覆盖
我们的代码库中有很多手动映射的类(原因)。我们使用 Coverlet 向 SonarQube 报告覆盖率,以便通过失败构建进行覆盖。在我们大约 40% 的映射方法中,它被错误地报告为未发现代码并导致我们的构建失败。
我通过反复试验发现,更改代码结构会影响 Coverlet 报告覆盖/未覆盖行的方式。所有代码在功能上都是等效的,因为我们不得不求助于代码扭曲来让我们的构建通过。这对我们来说似乎是错误的,上级希望我向 Coverlet 提交错误报告。在这样做之前,我想知道我们是否缺少某些东西。
我在下面包含了 SonarQube 报告的屏幕截图,以显示如何根据代码结构报告覆盖率。我们是否遗漏了一些明显的东西?
c# - 无法添加 Coverlet nuget 包 - 版本字符串部分太短或太长
当我尝试添加coverlet.msbuild
到我的测试项目时,我收到此错误:
我确实看到我的 csproj 发生了变化:
但是对 没有任何更改packages.config
,因此看起来实际上并未安装 nuget。
我正在尝试将其添加到 .net 4.8 测试项目中。
关于可能导致这种情况的任何想法?
msbuild - 使用 Visual Studio 17.1 从控制台运行单元测试时出错
从命令行运行单元测试时出现以下错误。这在 Windows 10 机器上运行良好,在 Windows 7 中失败。
致命错误。System.AccessViolationException:试图读取或写入受保护的内存。这通常表明其他内存已损坏。在 System.Reflection.RuntimeAssembly.InternalLoad(System.Runtime.CompilerServices.ObjectHandleOnStack,System.Runtime.CompilerServices.ObjectHandleOnStack,System.Runtime.CompilerServices.StackCrawlMarkHandle,布尔,System.Runtime.CompilerServices.ObjectHandleOnStack,System.Runtime.CompilerServices.ObjectHandleOnStack ) 在 System.Reflection.RuntimeAssembly.InternalLoad(System.Reflection.AssemblyName, System.Reflection.RuntimeAssembly, System.Threading.StackCrawlMark ByRef, Boolean, System.Runtime.Loader.AssemblyLoadContext) 在 System.Reflection.Assembly.Load(System. Reflection.AssemblyName) 在 Microsoft.VisualStudio.TestPlatform.Common.ExtensionFramework.TestPluginCache。2<System.String,System.__Canon>) at Microsoft.VisualStudio.TestPlatform.Common.ExtensionFramework.TestPluginDiscoverer.GetTestExtensionsFromFiles[[System.__Canon, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.String[], System.Collections.Generic.Dictionary
2<System.String,System.__Canon>) 在 Microsoft.VisualStudio.TestPlatform.Common.ExtensionFramework.TestPluginDiscoverer.GetTestExtensionsInformation[System.__Canon, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e] ,[System.__Canon, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e] 在 Microsoft.VisualStudio.TestPlatform.Common.ExtensionFramework.TestPluginCache.GetTestExtensions[System.__Canon, System.Private.CoreLib ,版本=6.0.0.0,文化=中性,PublicKeyToken=7cec85d7bea7798e],[System.__Canon,System.Private.CoreLib,版本=6.0.0.0,文化=中性,PublicKeyToken=7cec85d7bea7798e] 在 Microsoft.VisualStudio.TestPlatform.Common。 ExtensionFramework.TestPluginCache.DiscoverTestExtensions[System.__Canon, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral,PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e] 在 Microsoft.VisualStudio.TestPlatform.Common.Hosting.TestRuntimeExtensionManager.Create(Microsoft.VisualStudio.TestPlatform .ObjectModel.Logging.IMessageLogger) 在 Microsoft.VisualStudio.TestPlatform.Common.Hosting.TestRuntimeProviderManager.get_Instance() 在 Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.TestEngine..ctor() 在 Microsoft.VisualStudio.TestPlatform.Client.TestPlatform.. ctor() 在 Microsoft.VisualStudio.TestPlatform.Client.TestPlatformFactory.GetTestPlatform() 在 Microsoft.VisualStudio.TestPlatform.CommandLine.TestPlatformHelpers.TestRequestManager..ctor() 在 Microsoft.VisualStudio.TestPlatform.CommandLine.TestPlatformHelpers.TestRequestManager.get_Instance()在 Microsoft.VisualStudio。TestPlatform.CommandLine.Processors.RunTestsArgumentProcessor+<>c.<get_Executor>b__6_0() at System.Lazy1[[System.__Canon, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].ViaFactory(System.Threading.LazyThreadSafetyMode) at System.Lazy
1[[System.__Canon, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].ExecutionAndPublication(System.LazyHelper, Boolean) at System.Lazy 1[[System.__Canon, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].CreateValue() at System.Lazy
1[[System.__Canon, System. Private.CoreLib,版本=6.0.0.0,文化=中性,PublicKeyToken=7cec85d7bea7798e]].get_Value() 在 Microsoft.VisualStudio.TestPlatform.CommandLine.Processors.ArgumentProcessorFactory+<>c__DisplayClass20_0.b__0() 在 System.Lazy1[[System.__Canon, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].CreateValue() at System.Lazy
1 [[System.__Canon,System.Private.CoreLib,版本=6.0.0.0,Culture=neutral,PublicKeyToken=7cec85d7bea7798e]].get_Value() 在 Microsoft.VisualStudio.TestPlatform.CommandLine.Executor.GetArgumentProcessors(System.String[] , System.Collections.Generic.List`1<Microsoft.VisualStudio.TestPlatform.CommandLine.Processors.IArgumentProcessor> ByRef) 在 Microsoft.VisualStudio.TestPlatform.CommandLine.Executor.Execute(System.String[]) 在 Microsoft.VisualStudio.TestPlatform .CommandLine.Program.Main(System.String[]) C:\Users\loadbuilder.nuget\packages\coverlet.msbuild\3.1.2\build\coverlet.msbuild.targets(71,5):错误 MSB4044:“ Coverlet.MSbuild.Tasks.CoverageResultTask”任务没有为所需参数“InstrumenterState”指定值。