视觉工作室代码覆盖范围与Vnext项目有关



,由于代码覆盖范围实用程序烘烤到Visual Studio(vstest.console.exe& codecoverage.exe)分析二进制文件(例如.dll.exe文件),这些工具仍然适用于VNEXT Projects(因为它们不不适用于生成二进制)?

我正在尝试使用Vnext类库的解决方案上运行代码覆盖范围,但是我唯一能够生成的信息是用于Xunit .dll文件,而不是我的项目。

我们的团队能够使用OpenCover生成Vnext Solutions的代码覆盖文件。当OpenCover按项目对项目进行分析时,这需要一些开销,因此您需要编写一个脚本来浏览解决方案中的项目,运行OpenCover,然后合并覆盖范围文件。

这是我们在脚本中所做的示例,以防任何人都想复制它:

我们正在通过每个项目循环,并致电DNX引擎和OpenCover以生成该项目的覆盖范围。

foreach($projectFile in $projectFiles)
{
    $project=$projectFile.Directory.Name
    $buildCommands=$buildCommands+$projectFile.Directory.FullName
    $testPoject = //Path//To//Test//Projects
    if(Test-Path $testPoject)
    {
        _Verbose "$testPoject exists for $project"
        $testCommand = "$OpenCoverUtil -register:user ""-excludebyfile:**.gen.cs"" ""-target:$DnxPathdnx.exe "" ""-targetargs: $testPojectproject.json test"" ""-output:$OutpathCS$project.coverage.xml"" -skipautoprops -returntargetcode -filter:""+[$project*]*"""
        _Verbose $testCommand
        $testCommands=$testCommands+$testCommand
    }
}

在包括

的全新解决方案中
  • ASP.NET 5预览模板空项目
  • MS测试单元测试项目

运行测试 ->分析代码覆盖 - 所有测试

确实成功完成,但仅显示单元测试项目的代码覆盖范围。此外,正如您可能已经注意到的那样,您无法将Vnext项目的参考添加到单位测试项目中,并且Xunit是当前唯一支持的测试项目框架。

我认为,可以肯定地假设,如今,这些工具对于Vnext项目而"破坏",因为它们没有从xunit.runner.dnx Runner中脱颖而出。

有趣的是,同一文档确实指出您可以从VS测试跑步者中运行xunit.runner.dnx测试,因此似乎至少在其雷达上这类问题。

最新更新