首页 文章

从Visual Studio Team Services中的代码覆盖范围中排除程序集

提问于
浏览
1

我有一个在Visual Studio Team Services(以前的Visual Studio Online)上运行的构建 . 我想从代码覆盖率计算中排除一些程序集 . 根据我阅读的格式from many sources . 我创建了一个.runsettings文件,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
  <DataCollectionRunSettings>
    <DataCollectors>
      <DataCollector friendlyName="Code Coverage" 
          uri="datacollector://Microsoft/CodeCoverage/2.0"
          assemblyQualifiedName="Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollector, Microsoft.VisualStudio.TraceCollector, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
        <Configuration>
          <CodeCoverage>
            <ModulePaths>
              <Exclude>
                <ModulePath>*AWSSDK*</ModulePath>
              </Exclude>
            </ModulePaths>
          </CodeCoverage>
        </Configuration>
      </DataCollector>
    </DataCollectors>
  </DataCollectionRunSettings>
</RunSettings>

但是这会产生以下错误:

开始测试执行,请稍候...错误:System.InvalidOperationException:无法在进程流上混 Contract 步和异步操作 . 在System.Diagnostics.Process.get_StandardError()at Microsoft.VisualStudio.Coverage.Vanguard.Wait()at Microsoft.VisualStudio.Coverage.Vanguard.Start(String outputName,DataCollectionContext context)at Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollectorImpl.StartVanguard( System.EventHandler`1.Invoke(对象发送者,TEventArgs)上的Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollector.SessionStart(Object sender,SessionStartEventArgs e)中的Microsoft.VisualStudio.Coverage.UnitTestDataCollector.SessionStart(Object sender,SessionStartEventArgs e)中的DataCollectionContext上下文) e)WEX.TestExecution.TaefDataCollectionEvents.OnSessionStart(SessionStartEventArgs e)at WEX.TestExecution.DataCollectorTestMode.Initialize(ITestModeSettings settings,ICallbackRegistrar callbackRegistrar)信息:此外,如果安装了测试发现者和执行者,您可以尝试指定'/ UseVsixExtensions'命令在机器上作为vsix扩展,您的安装支持v六个扩展 . 示例:vstest.console.exe myTests.dll / UseVsixExtensions:true VSTest测试运行失败,退出代码:1

是的,一些测试使用async / await . 相同的.runsettings文件在Visual Studio 2015中运行正常 . 如果我按照建议执行并添加以下选项: /UseVsixExtensions:true ,结果是相同的 . 我怎样才能解决这个问题?

1 回答

  • 3

    runsettings文件使用以下正则表达式来匹配文件:

    正则表达式包含和排除节点使用正则表达式 . 有关更多信息,请参见在Visual Studio中使用正则表达式 . 正则表达式与通配符不同 . 特别是: . *匹配任何字符的字符串 . 匹配点“ . ”)()匹配括号“()”\匹配文件路径分隔符“\”^匹配字符串的开头$匹配字符串的结尾

    使用原始路径,将排除所有文件,因为路径中只有"*" . 有关详细信息,请参阅此链接:Regular Expressions in Visual Studio .

    对于错误的异常,根据您提供的日志,您正在使用Hosted Build Agent运行构建 . 我使用Hosted Build Agent进行了快速测试,也可以重现这个问题 . 但是,当我尝试使用自己的构建代理时,不会发生此问题 . 我怀疑Hosted Build Agent上有一些设置/配置导致此问题,我帮助您在Microsoft Connect页面上提交反馈 . 您可以查看此链接进行跟踪:Invalid exception when run testing from Hosted Build Agent

相关问题