【问题标题】:TFS build Run Functional Tests task: "DistributedTests: Test run '[run#]' is in 'InProgress' state."TFS 构建运行功能测试任务:“DistributedTests:测试运行 '[run#]' 处于 'InProgress' 状态。”
【发布时间】:2018-12-27 18:35:23
【问题描述】:

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

我的构建定义过程如下所示:

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

此时,当我开始构建时,包括 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:是自动化的:是的

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

DistributedTests:构建位置:[TestProjectLocation]

DistributedTests:构建 ID:[构建 ID]

DistributedTests:测试配置映射:

DistributedTests:使用 Id [run#] 排队的测试运行

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

Run Functional Tests 任务继续尝试执行直到超时,在 TFS 控制台输出中显示 DistributedTests: Test run '[run#]' is in 'InProgress' 状态。

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

DTAExecutionHost.exe 信息:0: TestExecutionServiceCommandQueueListener.DispatchAsync:获取 测试代理 19 的命令 日期时间=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 已收到。 日期时间=2018-07-19T14:36:27.7794911Z

DTAExecutionHost.exe 信息:0: TestExecutionServiceCommandQueueListener.DispatchAsync : TestExecutionCommand 收到无。重试。 日期时间=2018-07-19T14:36:27.7794911Z

DTAExecutionHost.exe 信息:0: TestExecutionServiceCommandQueueListener.DispatchAsync :队列不 成立。延迟 50000 毫秒。 日期时间=2018-07-19T14:36:27.7794911Z

在我的 Visual Studio 测试代理部署任务中,选择的协议是 HTTP,运行 UI 测试复选框已勾选,更新测试代理复选框未勾选。

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

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

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

更新日期:2018 年 8 月 21 日

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

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

【问题讨论】:

    标签: selenium tfsbuild mstest functional-testing


    【解决方案1】:

    我设法通过对我的设置进行一些更改来使其正常工作:

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

    将所有更新签入 TFS 后,新构建成功完成。程序集中的所有测试都按预期被发现并执行。

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

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

    【讨论】:

    • 既然问题已经解决,您可以Accept it as an Answer,这对阅读此主题的其他社区成员会有所帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-31
    • 2023-03-18
    • 1970-01-01
    • 2015-02-20
    • 1970-01-01
    • 2012-12-29
    相关资源
    最近更新 更多