【问题标题】:How to fix time out issue with C# selenium continuous integration build on TFS server?如何解决在 TFS 服务器上构建 C# selenium 持续集成的超时问题?
【发布时间】:2019-12-19 11:54:21
【问题描述】:

我正在设置我的 C# selenium 持续集成构建以在 TFS 服务器上运行

构建作业有多个阶段:

  1. 初始化作业
  2. 获取来源
  3. 构建解决方案***.sln
  4. VsTest - 测试组件
  5. 杀死 Stray ChromeDriver
  6. 工作后:获取资源
  7. 完成工作

所有这些阶段都通过了,除了 VsTest-test 程序集 它总是说“构建部分成功”并抛出以下错误

"##[warning]Windows Error Reporting DontShowUI not set, if the windows error dialog pops-up in the middle of UI test execution than the test will hang"
"##[error]The task has timed out."

我不确定这两个错误是否相关 但它总是超时,我试图在我的每个类中添加 TearDown 方法,它仍然没有帮助

 [TearDown]
public void BaseTearDown()
{
    driver.Close();
}

【问题讨论】:

  • 您是否使用无头浏览器运行 selenium 测试?
  • 不,我不认为它是无头的,在 CI 服务器上打开了实际的浏览器
  • 这可能是您问题的根源。在 CI 服务器上运行 selenium 测试时,您不会得到桌面或窗口。大多数 CI 服务器会阻止需要 GUI 的进程。为了解决这个问题,您可以在“无头”模式下启动浏览器,这样它就不需要 GUI。每个浏览器供应商的做法都略有不同。

标签: c# selenium tfs continuous-integration


【解决方案1】:

根据您的描述,显示为“部分成功”的 vsTest 任务可能是由于您选中了“出错时继续”选项。

出错时继续(部分成功)

如果您希望同一作业中的后续任务执行 即使此任务失败,也可能运行。构建或部署将是 不比部分成功好。后续任务是否运行 取决于运行此任务设置。

请参阅此文档以获取更多信息:Task control options

根据您的警告和错误,VsTest 任务有一个超时选项,它指定任务在被服务器取消之前允许执行的最长时间(以分钟为单位)。

将值更改为 0。零值表示无限超时。

如果仍然出现同样的错误,则超时错误应该是由于您的测试挂起造成的。

为此,有多种原因,请确保您已安装所有并需要 nuget 包。

您可以在这里查看我们的官方教程:UI test with Selenium

【讨论】:

  • 想补充一点,如果 webdriver 没有退出,vstest 将挂起等待那些子进程关闭,并且某些测试失败可能导致跳过拆卸。我在测试中遇到堆栈溢出问题,导致驱动程序一直在运行,因此挂起 vstest 直到超时。
猜你喜欢
  • 2014-12-18
  • 2013-11-29
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 2017-01-09
  • 1970-01-01
  • 2018-04-10
  • 1970-01-01
相关资源
最近更新 更多