【问题标题】:Process hangs after tests complete successfully测试成功完成后进程挂起
【发布时间】:2016-04-01 13:37:01
【问题描述】:

我们的测试都在成功运行并完成,我们看到了覆盖率摘要和带有TOTAL: tested X platforms, 0/X tests failed 的下表,但是该过程似乎挂起。

我已经能够使用 Intern 3.0.3 运行它们,但是自从尝试更新版本以来,它现在似乎一直挂起(即使我指定版本 3.0.3)...

我知道 Browserstack 存在问题,我们之前也遇到过问题,但是很难判断这是否真的是 Browserstack 问题?显示覆盖率表后是否还在Browserstack?

【问题讨论】:

  • 我看到了完全相同的东西,使用intern-runner 的测试都通过了,但在最后一行TOTAL: tested.... 之后挂起。

标签: intern browserstack


【解决方案1】:

更新:此问题现已通过对 digdug/BrowserStackTunnel.js 的更新得到解决,看起来它将成为 1.5.0 DigDug 版本的一部分。


我对此进行了研究,我是实习生的新手,我认为这是一个很好的学习方式。

花了一些时间跟踪 Intern 的 Runner 和 Executor 模块后,我终于进入了 DigDug Tunnel 模块。在这里和那里添加了一些console.log 之后,我发现它挂在上面的那条线(digdug/Tunnel.js:554):

childProcess.kill('SIGINT');

这一行负责关闭隧道(在我的例子中是到 BrowserStack)。只需从SIGINT 更改为SIGTERM,我就能让跑步者干净地退出。

问题是,为什么它不适用于SIGINT? (根据wikipedia;它几乎与SIGTERM 相同)。最初的问题提到了 BrowserStack 的问题(对于参考,我正在使用 v5.1 of the BrowserStackLocal for OS X)所以这里很可能仍然存在问题。但我看不到有关二进制文件的文档。

也就是说,我在 BrowserStack 自动化网站上注意到,所有会话都已正确关闭,并且 Intern 通过 BrowserStack REST API 正确地将运行标记为通过/失败等。那么,实习生内部是否有一些东西挂在隧道?

【讨论】:

  • 似乎已经进入 1.4.0 和 Intern 3.1.0。非常感谢您的调查!
【解决方案2】:

是的,mattjbones 是正确的。 BrowserStackLocal 似乎在发送 SIGINT 后没有终止。但是,我尝试使用他们今天发布的新版本的二进制文件(v5.2)运行实习生测试,现在一切正常!大家可以试试吗?

【讨论】:

    猜你喜欢
    • 2018-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-17
    • 2017-08-01
    • 2021-06-01
    • 1970-01-01
    相关资源
    最近更新 更多