【发布时间】:2017-09-07 02:44:14
【问题描述】:
我正在运行一个 TFS 夜间构建,在过去的几天里无法完成所有测试。它在几个小时后失败,并显示“测试运行已中止”消息。在此之前,测试总是成功运行,并且没有对运行这些测试的系统进行重大更改(甚至是微小的更改)。
信息:
- 在构建中运行两个 MStest(单元测试)
- 超时设置为 20 小时
- 运行大约。故障前 15 小时
- 测试设置为在失败时继续
当我在 TFS 日志中查看最新运行时,它列出了以下内容 (2017-04-11T06:42:47.5500707Z):
[警告]DistributedTests:测试运行已中止。记录运行日志的详细信息。 [警告]DistributedTests:已创建新的测试运行。
[警告]测试运行排队等待项目集合构建服务
[警告]DistributedTests:测试发现已开始。
[警告]DistributedTests:测试运行发现已完成。测试运行 ID:533
[警告]DistributedTests:发现 290 个测试用例。
[警告]DistributedTests:测试执行已开始。测试运行 ID:533
[警告]DistributedTests:测试运行超时。测试运行 ID:533
[警告]DistributedTests:测试运行中止。测试运行 ID:533
[错误]测试运行被中止,任务失败。
当我查看运行日志时(worker_20170410-234426-utc_864.log)我看到:
06:42:47.659516 BaseLogger.LogConsoleMessage(scope.JobId = 7ced7f31-e360-47f3-b334-ef20faeaf000, message = ##[error]测试运行 被中止,任务失败。)06:42:47.659516 Microsoft.TeamFoundation.DistributedTask.Agent.Common.AgentExecutionTerminationException: PowerShell 脚本完成但出现错误。在 Microsoft.TeamFoundation.DistributedTask.Handlers.PowerShellHandler.Execute(ITaskContext 上下文,CancellationToken 取消令牌)在 Microsoft.TeamFoundation.DistributedTask.Worker.JobRunner.RunTask(ITaskContext 上下文,TaskWrapper 任务,CancellationTokenSource tokenSource)
在test log 中,我在 VS 中没有看到任何错误,只是一个关于无法连接的警告(我经常看到这些):
W, 2060, 5, 2017/04/10, 16:26:03.595, XXXTESTING\QTController.exe, LoadTestResultConnectString 测试失败:网络相关或 建立连接时发生特定于实例的错误 SQL 服务器。服务器未找到或无法访问。核实 实例名称正确且 SQL Server 配置为 允许远程连接。 (提供者:SQL 网络接口,错误:26 - 定位服务器/指定实例时出错)
我同时在应用程序事件日志中也看到了一个错误:
来自源应用程序的事件 ID 0 的描述不能是 成立。引发此事件的组件未安装在 您的本地计算机或安装已损坏。你可以安装 或修复本地计算机上的组件。
如果事件源自另一台计算机,则显示信息 必须与事件一起保存。
活动中包含以下信息:
错误处理程序异常:System.ServiceModel.CommunicationException: 从管道读取错误:管道已结束。 (109, 0x6d)。 ---> System.IO.IOException:读取操作失败, 见内部异常。 ---> System.ServiceModel.CommunicationException: 从管道读取错误:管道已结束。 (109, 0x6d)。 ---> System.IO.PipeException:读取错误 从管道:管道已结束。 (109, 0x6d).....
消息资源存在,但在 字符串/消息表
问题是我真的不知道如何解释这些消息,每个日志都只是说“测试运行被中止,任务失败”,我什至不确定是 powershell 问题导致它的原因。我也不确定应用程序日志中抛出的错误是否相关,尽管它是在运行失败的同时抛出的。
当您真的不知道是什么导致测试代理失败时,研究这个问题也很困难。有与VS 和TFS Test Agent 相关的帖子,但我认为这些不是相关问题,当然还有关于Powershell message 的一些无益的帖子。
以前有人见过这种问题吗?我认为过去几天我的构建服务器上没有任何变化(可能是更新...),您认为会导致此类问题发生的原因是什么?
【问题讨论】:
-
在您的 vnext 构建定义中,请将“system.debug”变量设置为 true(默认为 false),然后重试?然后检查是否有一些关于您的错误的详细日志消息。
-
你的测试是否需要连接sql server实例,好像连接sql server时出错。请检查您的构建代理服务器和您的 sql server 机器之间的网络并确保连接正常。
-
@Tingting0929-MSFT 是的,我将其设置为 true,但我在日志中看不到更多信息。关于powershell也是如此。它确实尝试连接到 SQL 服务器(VIA 集成测试 - MSTest) 我可以设置一个过程来监控整个测试运行的网络连接。一旦我有更多结果,我会更新我的问题。
-
您运行的测试是什么?单元测试或负载测试或其他?您是否在测试中设置了超时时间?测试失败时构建运行多长时间?这是一个不变的时代吗?
-
@Eddie-MSFT 好问题,我已经用与此相关的更多信息更新了我的问题。
标签: visual-studio tfs azure-devops tfs-2015 alm