我有一个在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:无法在进程流上混合同步和异步操作。 在System.Diagnostics.Process.get_StandardError() 在Microsoft.VisualStudio.Coverage.Vanguard.Wait() 在Microsoft.VisualStudio.Coverage.Vanguard.Start(String outputName,DataCollectionContext context) 在Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollectorImpl.StartVanguard(DataCollectionContext context) 在Microsoft.VisualStudio.Coverage.UnitTestDataCollector.SessionStart(Object sender,SessionStartEventArgs e) 在Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollector.SessionStart(Object sender,SessionStartEventArgs e) 在System.EventHandler`1.Invoke(对象发送者,TEventArgs e) 在WEX.TestExecution.TaefDataCollectionEvents.OnSessionStart(SessionStartEventArgs e) 在WEX.TestExecution.DataCollectorTestMode.Initialize(ITestModeSettings设置,ICallbackRegistrar callbackRegistrar) 信息:此外,您可以尝试指定&#39; / UseVsixExtensions&#39;如果测试发现者&amp;执行程序作为vsix扩展安装在计算机上,您的安装支持vsix扩展。示例:vstest.console.exe myTests.dll / UseVsixExtensions:true VSTest测试运行失败,退出代码:1
是的,有些测试使用async / await。相同的.runsettings文件在Visual Studio 2015中运行正常。如果我按照建议执行并添加以下选项:/UseVsixExtensions:true
,结果是相同的。我该如何解决这个问题?
答案 0 :(得分:3)
runsettings文件使用以下正则表达式来匹配文件:
正则表达式包含和排除节点使用正则表达式。 有关更多信息,请参见在Visual Studio中使用正则表达式。 正则表达式与通配符不同。特别是:
。*匹配任何字符的字符串
。匹配一个点&#34;。&#34;)
()匹配括号&#34;()&#34;
\匹配文件路径分隔符&#34; \&#34;
^匹配字符串的开头
$匹配字符串的结尾
使用原始路径,所有文件都将被排除,因为您只有&#34; *&#34;在路上。有关详细信息,请参阅此链接: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