C# 以编程方式将覆盖率文件转换为覆盖率XML

C# 以编程方式将覆盖率文件转换为覆盖率XML,c#,code-coverage,C#,Code Coverage,我正在使用VisualStudio查找代码覆盖率。我已经生成了.coverage文件,可以在Visual Studio中打开它。我想将其转换为.coveragexml文件。 我正在使用CoverageInfo,CoverageDS类。以下是我正在尝试的代码: CoverageInfo info = CoverageInfo.CreateFromFile(coverageFilePath, binaryPath,symbolPath); CoverageDS dataSet = info.Buil

我正在使用VisualStudio查找代码覆盖率。我已经生成了.coverage文件,可以在Visual Studio中打开它。我想将其转换为.coveragexml文件。 我正在使用
CoverageInfo,CoverageDS
类。以下是我正在尝试的代码:

CoverageInfo info = CoverageInfo.CreateFromFile(coverageFilePath, binaryPath,symbolPath);
CoverageDS dataSet = info.BuildDataSet();
dataSet.WriteXml(outfile);
由于覆盖率文件很大,因此对info.BuildDataSet的调用会出现内存不足异常。是否有其他方法获取coveragexml


我提到了MSDN的博客,其中也提到了这个案例。本文介绍了如何使用
ICoverageModule
接口从
CoverageInfo
类中逐个模块地获取信息。但是如何将此模块信息转换为XML?该博客展示了如何解析和打印模块信息的示例。但我正在寻找将其转换为coveragexml文件。

调用
CoverageInfo.BuildDataSet(…)
时,我运行的是同一个
系统。OutOfMemoryException
。为了解决这个问题,我将该项目改为构建一个64位的应用程序,这使得该过程能够使用更多的内存。您还需要参考64位版本的:

  • Microsoft.VisualStudio.Coverage.Analysis.dll
  • Microsoft.VisualStudio.Coverage.Interop.dll

您可以在安装了TFS的系统上找到这些。查看<代码> C:\程序文件\微软Team Foundation Server XX .0应用层\ TFSJOBJOTA\PuxIs<代码> < P/>

可能有点晚了……/P> 但我已经创建了一个dotnet工具,用于将

.coverage
文件转换为
.coverage xml
文件,以便在使用VSTest@2.


有关详细信息,请参阅此链接:

感谢您分享您的精彩工具!它工作得很好:)