我正在尝试通过手动测试获取 dotnet 核心应用程序的代码覆盖率(我没有任何单元测试项目)
正如这个SO Question中提到的,我正在尝试使用 vsinstr 进行检测和 vsperfmon。
但是当运行以下命令时
vsinstr /coverage C:\Test\netcoreapp2.0\ConsoleAppCodeCoverageTest.dll
我收到以下错误。
Microsoft (R) VSInstr Post-Link Instrumentation 15.0.27128 x86
Copyright (C) Microsoft Corp. All rights reserved.
File to Process:
C:\Test\netcoreapp2.0\ConsoleAppCodeCoverageTest.dll -->
C:\Test\netcoreapp2.0\ConsoleAppCodeCoverageTest.dll
Original file backed up to
C:\Test\netcoreapp2.0\ConsoleAppCodeCoverageTest.dll.orig
Error VSP1019: Internal error. HRESULT=80004005
但是如果我在 .Net Framework 应用程序 exe 上使用 vsinstr ,它就可以正常工作。
知道如何解决这个问题,或者是否有任何其他方法可以通过手动测试来获取 dotnet 核心应用程序的代码覆盖率。
Visual Studio 有一个控制台应用程序,可用于手动代码覆盖,请参阅 https://learn.microsoft.com/en-us/visualstudio/test/microsoft-code-coverage-console-tool?view=vs-2022
总而言之,您可以通过四个步骤获得手动覆盖:
Microsoft.CodeCoverage.Console instrument --session-id 73c34ce5-501c-4369-a4cb-04d31427d1a4 MyApplication.exe
Microsoft.CodeCoverage.Console collect --session-id 73c34ce5-501c-4369-a4cb-04d31427d1a4 --server-mode
Microsoft.CodeCoverage.Console shutdown 73c34ce5-501c-4369-a4cb-04d31427d1a4
这将输出一个文件,默认名为
output.coverage
,您可以在 VS 中打开该文件来查看您的覆盖范围!