【发布时间】:2016-04-26 00:23:27
【问题描述】:
我有一个在 Visual Studio Team Services(以前的 Visual Studio Online)上运行的构建。我想从代码覆盖率计算中排除一些程序集。基于我读过的格式frommanysources。我创建了一个 .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(字符串 outputName,DataCollectionContext 上下文) 在 Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollectorImpl.StartVanguard(DataCollectionContext 上下文) 在 Microsoft.VisualStudio.Coverage.UnitTestDataCollector.SessionStart(对象发送者,SessionStartEventArgs e) 在 Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollector.SessionStart(对象发送者,SessionStartEventArgs e) 在 System.EventHandler`1.Invoke(对象发送者,TEventArgs e) 在 WEX.TestExecution.TaefDataCollectionEvents.OnSessionStart(SessionStartEventArgs e) 在 WEX.TestExecution.DataCollectorTestMode.Initialize(ITestModeSettings 设置,ICCallbackRegistrar callbackRegistrar) 信息:此外,如果测试发现器和执行器作为 vsix 扩展安装在机器上并且您的安装支持 vsix 扩展,您可以尝试指定“/UseVsixExtensions”命令。示例:vstest.console.exe myTests.dll /UseVsixExtensions:true VSTest 测试运行失败,退出代码:1
是的,一些测试正在使用 async/await。相同的 .runsettings 文件在 Visual Studio 2015 中运行良好。如果我按照建议执行并添加以下选项:/UseVsixExtensions:true,结果是一样的。我该如何解决这个问题?
【问题讨论】:
-
并且使用您提供的运行设置文件,应该找不到测试。格式应类似于“
.*AWSSDK.* ”。 -
可以在构建队列时将“system.debug”变量设置为“true”,然后共享整个日志吗?
-
令人惊讶的是,根据您的建议更改
ModulePath的内容解决了问题。令我震惊的是InvalidOperationException具有误导性,甚至可能是一些糟糕的异常处理? Here's the logs 和 system.debug=true 用于 ModulePath 为*AWSSDK*的构建(并且失败)。
标签: code-coverage azure-devops