【发布时间】:2011-06-30 14:55:29
【问题描述】:
我正在尝试将 Visual Studio 代码覆盖率文件 (data.coverage) 导出到 xml,如 this blog post from the code analysis team 中所述。我已将该帖子中的代码示例移至自定义 MSBuild 任务中。我的自定义任务引用了位于 Visual Studio 的 PrivateAssemblies 文件夹中的 Microsoft.VisualStudio.Coverage.Analysis.dll。
马上,尝试加载代码覆盖率文件会引发代码分析类型异常 ImageNotFoundException,指出“图像文件 fully-qualified-file-path-to-dll找到了。”
// the following line throws an exception
CoverageInfo current =
CoverageInfo.CreateFromFile( "c:\path\testresults\x\y\z\data.coverage");
路径是完全限定的,并且它引用的 DLL 确实存在。我的 testsettings 将此文件列为要检测的程序集,并设置了“Instrument in place”复选框。我可以在 Visual Studio 中查看代码覆盖率,因此我知道覆盖率正在发挥作用。
我正在从 Visual Studio 命令行运行我的 MSBuild 脚本。它看起来像这样:
<Project ToolsVersion="4.0" DefaultTargets="Default;"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<UsingTask TaskName="CustomTasks.MergeCoverageTask"
AssemblyFile="CustomTasks.dll"
/>
<Target Name="Default">
<ItemGroup>
<CoverageFiles Include="**\data.coverage" />
</ItemGroup>
<MergeCoverageTask
CoverageFiles="@(CoverageFiles)"
OutputFile="output.xml"
/>
</Target>
</Project>
谁能建议我需要做什么才能使其正常工作?
【问题讨论】:
标签: visual-studio-2010 code-coverage