TFS构建“运行功能测试”任务:“ DistributedTests:测试运行'[run#]'处于'进行中'状态。”

时间:2018-07-19 14:51:27

标签: selenium tfsbuild mstest functional-testing

我正在研究新的非XAML TFS构建。我的目标是在构建代理VM上构建测试项目,将测试二进制文件复制到测试代理VM并从测试代理VM执行Selenium Web UI测试。

我的构建定义过程如下:

  • 获取资源
  • NuGet安装程序
  • MSBuild(构建测试项目)
  • Windows Machine Copy(将测试项目bin文件夹内容复制到测试代理VM)
  • Visual Studio测试代理部署(将测试代理部署到测试代理VM)
  • 运行功能测试

在这一点上,当我启动构建时,到目前为止(包括Visual Studio测试代理部署)的所有步骤都已成功完成。

但是,当“运行功能测试”任务开始执行时,我们将看到以下控制台输出:

  

准备任务执行处理程序。

     

执行powershell脚本:   D:\ tfsbuild-2_work_tasks \ RunVisualStudioTestsusingTestAgent_d353d6a2-e361-4a8f-8d8c-123bebb71028 \ 1.0.52 \ RunDistributedTests.ps1

     

DistributedTests:环境WinRm协议HTTP。

     

DistributedTests:使用以下命令为选定的测试程序集创建运行   以下参数

     

DistributedTests:SourceFilter:*** Test * .dll TestCaseFilter:

     

DistributedTests:运行标题:[运行标题]

     

DistributedTests:是自动的:True

     

DistributedTests:测试设置ID:[测试设置ID]

     

DistributedTests:构建位置:[TestProjectLocation]

     

DistributedTests:内部版本ID:[内部版本ID]

     

DistributedTests:测试配置映射:

     

DistributedTests:ID为[run#]排队的测试运行

     

DistributedTests:测试运行'[run#]'处于'InProgress'状态

“运行功能测试”任务将继续尝试执行直到超时,直到显示DistributedTests:TFS控制台输出中的测试运行“ [run#]”处于“正在进行”状态。

DTAExecutionHost.exe日志文件为每个相应的控制台输出显示以下条目:

  

DTAExecutionHost.exe信息:0:   TestExecutionServiceCommandQueueListener.DispatchAsync:获取   测试代理命令19       DateTime = 2018-07-19T14:36:27.6387445Z

     

Web方法正在运行:[https://.../test/Agents/19/Commands/0]   (GET)0 [测试]

     

Web方法响应:[https://.../test/Agents/19/Commands/0]   (GET)0 [测试] 153毫秒

     

DTAExecutionHost.exe信息:0:   TestExecutionServiceCommandQueueListener:DispatchAsync命令   Microsoft.TeamFoundation.Test.WebApi.TestExecutionServiceCommand   收到。       DateTime = 2018-07-19T14:36:27.7794911Z

     

DTAExecutionHost.exe信息:0:   TestExecutionServiceCommandQueueListener.DispatchAsync:   TestExecutionCommand收到的结果为None。重试。       DateTime = 2018-07-19T14:36:27.7794911Z

     

DTAExecutionHost.exe信息:0:   TestExecutionServiceCommandQueueListener.DispatchAsync:不排队   找到了。延迟50000毫秒。       DateTime = 2018-07-19T14:36:27.7794911Z

在我的Visual Studio测试代理部署任务中,选定的协议为HTTP,选中了“运行UI测试”复选框,未选中“更新测试代理”复选框。

在Visual Studio测试代理部署任务期间,空白DTAExecutionHost.exe控制台窗口在测试代理VM上打开;在尝试运行期间,此窗口保持打开状态。

项目中的所有测试都会在本地计算机上的Visual Studio中发现并按预期执行。

最近几天,我阅读了许多有关此问题的博客,帖子和讨论主题,但到目前为止,仍未找到解决该问题的方法。请协助;欢迎任何见解和建议。

更新:2018年8月21日

此问题仍然存在。下面提供的答案似乎可以解决问题,但问题最初是断断续续地返回的(我已经成功执行过),现在每个构建的测试执行步骤都超时了。

我未将以下答案标记为正确。

1 个答案:

答案 0 :(得分:0)

通过对设置进行一些更改,我设法使它起作用:

  1. 为我的Web UI测试项目创建了新的解决方案(该项目具有 成为整体大型解决方案的一部分;我一直在复制 从原始解决方案构建到测试代理VM的测试项目。
  2. 已将.testsettings文件添加到解决方案(此文件中的所有设置都已保留 默认情况下,除了“部署”上的“启用部署”复选框 标签)。在我的测试项目中,在“测试”->“测试设置”->“测试”下 设置文件,我添加了新创建的.testsettings文件。

一旦所有更新都已检入到TFS中,则新构建成功完成。程序集中的所有测试均已发现并按预期执行。

在此处查看m00nbeam360.0的贡献:

Running Selenium functional test in TFS 2015 vNext repeats 'InProgress' and eventually times out

相关问题