我正在运行一个TFS每晚构建,在过去的几天里,它还没有能够完成所有的测试。使用“测试运行中止”消息几个小时后,它将失败。在此之前,测试总是成功地运行,没有对运行这些测试的系统进行重大更改(甚至是小更改)。
信息:
当我查看TFS日志中的最新运行时,它列出了以下内容(2017-04-11T06:42:47.5500707Z):
warningDistributedTests:测试运行被中止。记录运行日志的细节。warningDistributedTests:创建了新的测试运行。 项目集合生成服务的warningTest运行排队 warningDistributedTests:测试发现已经启动。 warningDistributedTests:完成测试运行发现。测试运行id: 533 warningDistributedTests: 290个测试用例被发现。 warningDistributedTests:测试执行已经启动。测试运行id : 533 warningDistributedTests:测试运行超时。测试运行id : 533 warningDistributedTests:测试运行中止。测试运行id: 533 errorThe测试运行被中止,导致任务失败。
当我查看运行日志(worker_20170410-234426-utc_864.log)时,我看到:
06:42:47.659516 Microsoft.TeamFoundation.DistributedTask.Agent.Common.AgentExecutionTerminationException: BaseLogger.LogConsoleMessage(scope.JobId = 7ced7f31-e360-47f3-b334-ef20faeaf000,message = ##errorThe测试运行失败,任务失败)。(在Microsoft.TeamFoundation.DistributedTask.Handlers.PowerShellHandler.Execute(ITaskContext上下文中,CancellationToken cancellationToken)在Microsoft.TeamFoundation.DistributedTask.Worker.JobRunner.RunTask(ITaskContext上下文中,TaskWrapper任务,CancellationTokenSource tokenSource)
在测试日志中,我没有在VS中看到任何错误,只是对无法连接的警告(我经常看到这些):
W,2060,5,2017/04/10,16:26:03.595,XXXTESTING\QTController.exe,LoadTestResultConnectString测试失败:在建立到Server的连接时发生了网络相关的或特定于实例的错误。找不到或无法访问服务器。验证实例名是否正确,以及Server是否配置为允许远程连接。(提供程序: SQL网络接口,错误: 26 -指定的服务器/实例定位错误)
我还看到在Application日志中同时抛出一个错误:
找不到源应用程序中事件ID 0的说明。引发此事件的组件没有安装在本地计算机上,或者安装已损坏。您可以在本地计算机上安装或修复组件。 如果事件起源于另一台计算机,则显示信息必须与事件一起保存。 这次活动包括下列资料: Error异常: System.ServiceModel.CommunicationException:从管道读取错误:管道已经结束。(109,0x6d)。-> System.IO.IOException:读取操作失败,请参阅内部异常。-> System.ServiceModel.CommunicationException:从管道读取错误:管道已经结束。(109,0x6d)。-> System.IO.PipeException:从管道读取错误:管道已经结束。(109,0x6d). 存在消息资源,但在字符串/消息表中找不到消息。
问题是我真的不知道如何解释这些消息,每个日志都说“测试运行被中止了,任务失败了”,我甚至不确定powershell问题是什么导致的。我也不确定应用程序日志中抛出的错误是否相关,尽管它是在运行失败的同时抛出的。
当你真的不知道是什么导致测试代理失败的时候,研究这个问题也是很困难的。有一些与VS和TFS测试代理相关的帖子,但我并不认为这是相关的问题,当然还有一些关于Powershell消息的文章没有多大帮助。
以前有人见过这类问题吗?我认为在过去的几天里,我的构建服务器上的任何东西都没有改变(也许是更新),您认为是什么会导致这样的问题发生呢?
发布于 2017-05-23 16:05:26
如果在TFS的"Build“部分中中止了失败的构建(包含测试),它会说它被”中止“了,这就是.如果您查看TFS " test“部分中构建(包含测试)的结果,它将指定测试运行”超出超时“。
显然,MSTest遇到了这个小宝石的默认值。我认为它默认为8小时当没有指定,但我不太确定这一点。无论如何,我在"Default.testsettings“文件中设置了以下设置:
<?xml version="1.0" encoding="utf-8"?>
<TestSettings name="TestSettings1">
<Execution>
<Timeouts runTimeout="200000000" />
</Execution>
</TestSettings>似乎解决了这个问题。测试成功运行,不再超时。
https://stackoverflow.com/questions/43350558
复制相似问题