gpt4 book ai didi

mstest - 使用 MSTest 的 OpenCover 输出分析相同的程序集两次

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

我第一次尝试在当前项目中使用 opencover,并且刚刚让它与我的 mstest 项目一起使用。不过我遇到了一个问题,因为 opencover 输出 xml 似乎试图分析同一个程序集两次。另外值得注意的是,其中一个分析显示代码覆盖率为 0%(这是错误的),而另一个更像是 85%(这是正确的)。

我的 opencover 命令如下所示:

"opencover.console.exe" -register:user -target:"C:\Program Files (x86)\Microsoft visual Studio 10.0\Common7\IDE\mstest.exe" -output:"C:\temp\coverage.xml" -targetargs:"/testcontainer:MyTestAssembly.dll" -filter:+[MyAssembly]MyNamespace.MyClassName

这是指单个程序集和该程序集中的单个类。但是,xml 输出有 2 个模块部​​分,具有相同的哈希值。有趣的是,第一个模块的 FullName 指向我的“\bin\Debug\MyAssembly.dll”文件夹中的程序集,而第二个模块指向“C:\temp\TestResults...\Out\MyAssembly”中的输出程序集.dll”。

有任何想法吗?

马特

最佳答案

您需要使用 -mergebyhash 开关,此开关记录在 WIKI/USAGE 中。

这是因为 mstest 在不同的位置打开程序集两次;一次在其原始位置,然后再次在测试文件夹中。

此选项强制 opencover 通过文件哈希比较程序集,并重用先前加载程序集的序列点标识符。如果找不到 PDB,您可能还需要使用 -targetdir 来指向包含它们的文件夹,但它通常会在没有额外帮助的情况下找到它们。

关于mstest - 使用 MSTest 的 OpenCover 输出分析相同的程序集两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8534562/

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