Miq*_*Miq 12 c# code-coverage xunit visual-studio .net-core
我最近安装了 VS2019 Prof 16.2 并在加载.coverage
文件时遇到以下错误:
Microsoft Visual Studio
Exception was thrown: Could not load file or assembly 'Microsoft.VisualStudio.Coverage.Analysis,
Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or
one of its dependencies. The system cannot find the file specified.
Run Code Online (Sandbox Code Playgroud)
我知道这通常意味着(对于以前的 VS 版本)您需要先运行测试然后加载覆盖文件,但现在对于 2019 16.2 它不起作用。但是,加载相同的覆盖文件在 VS2017 Community 15.9.14 中有效
在Microsoft.VisualStudio.Coverage.Analysis.dll
位于C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\Extensions\TestPlatform
并具有版本16.0.28223.3002
还有其他人遇到这个问题吗?
配置为重现问题的测试项目可以在我的 git https://github.com/miqm/playground/tree/master/SchedulingApp上找到
以生成.coverage
我运行dotnet test -s Default.runsettings
然后我使用 File -> Open 将其加载到 VS。
我尝试在启用 /logs 的情况下运行 VS,但没有任何有意义的出现。只有在我尝试打开报道时的日志是:
<entry>
<record>777</record>
<time>2019/08/03 20:48:17.804</time>
<type>Information</type>
<source>VisualStudio</source>
<description>Begin package load [Microsoft.VisualStudio.TestTools.TestCaseManagement.QualityToolsPackage, Microsoft.VisualStudio.QualityTools.TestCaseManagement, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]</description>
<guid>{A9405AE6-9AC6-4F0E-A03F-7AFE45F6FCB7}</guid>
</entry>
<entry>
<record>778</record>
<time>2019/08/03 20:48:18.097</time>
<type>Information</type>
<source>VisualStudio</source>
<description>Begin package load [Microsoft.VisualStudio.TestTools.Tips.TuipPackage.TuipPackage, Microsoft.VisualStudio.QualityTools.Tips.TuipPackage, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]</description>
<guid>{52CBD135-1F97-2580-011F-C7CD052E44DE}</guid>
</entry>
<entry>
<record>779</record>
<time>2019/08/03 20:48:18.152</time>
<type>Information</type>
<source>VisualStudio</source>
<description>End package load [Microsoft.VisualStudio.TestTools.Tips.TuipPackage.TuipPackage, Microsoft.VisualStudio.QualityTools.Tips.TuipPackage, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]</description>
<guid>{52CBD135-1F97-2580-011F-C7CD052E44DE}</guid>
</entry>
<entry>
<record>780</record>
<time>2019/08/03 20:48:18.164</time>
<type>Information</type>
<source>VisualStudio</source>
<description>End package load [Microsoft.VisualStudio.TestTools.TestCaseManagement.QualityToolsPackage, Microsoft.VisualStudio.QualityTools.TestCaseManagement, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]</description>
<guid>{A9405AE6-9AC6-4F0E-A03F-7AFE45F6FCB7}</guid>
</entry>
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏。
Miq*_*Miq 33
根据微软对错误报告的回应(https://developercommunity.visualstudio.com/content/problem/676360/cannot-open-coverage-file-from-visual-studio-2019.html)结果证明,打开 Coverage 文件仅是企业版的功能。
它之所以(并且正在)在 2017 社区和专业版和 2019 <16.2 上工作的原因是一个小故障,在运行所有测试后,缺少的程序集已加载并可以打开覆盖范围。
为了恢复在 Professional 上的开放覆盖文件(可能还有 Community,没有测试它),我们需要在somehash文件;Extensions\TestPlatform
的<probing privatePath=""/>
列表末尾添加。%USERPROFILE%\AppData\Local\Microsoft\VisualStudio\16.0_
\devenv.exe.config
或者....
复制
Common7/IDE/Extensions/TestPlatform/Microsoft.VisualStudio.Coverage.Analysis.dll
Common7/IDE/Extensions/TestPlatform/Microsoft.VisualStudio.Coverage.Interop.dll
Run Code Online (Sandbox Code Playgroud)
到
Common7/IDE/PrivateAssemblies
Run Code Online (Sandbox Code Playgroud)
要打开覆盖文件,作为错误状态,需要 dll 文件。在企业版中,该文件位于并从以下位置加载:Common7/IDE/PrivateAssemblies/Microsoft.VisualStudio.Coverage.Analysis.dll
但是,相同的文件在Common7\IDE\Extensions\TestPlatform
. 所以我们有需要的程序集文件,但 devenv 不知道它在那里。
其中%USERPROFILE%\AppData\Local\Microsoft\VisualStudio\
有像 16.0_hash 这样的子文件夹,其中包含devenv.exe.config
指定所需汇编及其位置的文件。
在每个文件中,还有一个<probing>
条目指定了额外的位置来告诉 devenv.exe 在哪里查找 dll 程序集。Enterprise 和 Professional 具有相同的条目,但由于 Enterprise 版本PrivateAssemblies
在此列表中的文件夹中缺少文件,devenv 正在加载它。因此,我们需要将 dll 文件从 TestExtensions 复制到 PrivateAssemblies 或将文件夹路径添加到探测列表。
归档时间: |
|
查看次数: |
6882 次 |
最近记录: |