【问题标题】:TFS (vNext) + Karma + Chrome : Chrome have not captured in 60000 ms, killingTFS (vNext) + Karma + Chrome : Chrome 没有在 60000 毫秒内捕获,正在杀死
【发布时间】:2017-01-07 01:29:35
【问题描述】:

我正在尝试通过 TFS 2015(vNext) 本地构建来构建我们团队的 UI。 我在 vNext 中使用 Grunt 构建步骤来调用一个 gruntjs 文件,该文件将构建所有的 grunt 任务。

目前,构建失败,因为任务无法启动 chrome 并且超时“Chrome 没有在 60000 毫秒内捕获,正在杀死。” 我看到它能够为某些 grunt 任务启动 chrome,但对于某些任务失败。 当我运行 grunt 命令时,直接从构建服务器上的 cmdline 或 powershell 控制台调用 gruntjs 文件,它可以工作非常好,但它在 vNext 构建中失败了。

我将chrome版本从“52.0.2743.116 m”回滚到“51.0.2704.103 m”并尝试过,但仍然没有成功。

我浏览了讨论相同问题的链接。但我不确定这是否是 chrome 问题,因为它适用于一些繁重的任务。

自上周以来,我一直坚持这一点,并且濒临放弃,任何帮助都会非常棒。

谢谢

错误

[32m31 08 2016 11:27:53.800:INFO [karma]: [39mKarma v0.13.22 server started at http://localhost:8888/
[32m31 08 2016 11:27:53.815:INFO [launcher]: [39mStarting browser Chrome
[33m31 08 2016 11:28:49.663:WARN [launcher]: [39mChrome have not captured in 60000 ms, killing.
[32m31 08 2016 11:28:49.757:INFO [launcher]: [39mTrying to start Chrome again (1/2).
[33m31 08 2016 11:28:53.834:WARN [launcher]: [39mChrome have not captured in 60000 ms, killing.
[32m31 08 2016 11:28:53.912:INFO [launcher]: [39mTrying to start Chrome again (1/2).
[33m31 08 2016 11:29:49.779:WARN [launcher]: [39mChrome have not captured in 60000 ms, killing.
[32m31 08 2016 11:29:49.842:INFO [launcher]: [39mTrying to start Chrome again (2/2).
[33m31 08 2016 11:29:53.931:WARN [launcher]: [39mChrome have not captured in 60000 ms, killing.
[32m31 08 2016 11:29:53.993:INFO [launcher]: [39mTrying to start Chrome again (2/2).
[33m31 08 2016 11:30:49.852:WARN [launcher]: [39mChrome have not captured in 60000 ms, killing.
[31m31 08 2016 11:30:49.930:ERROR [launcher]: [39mChrome failed 2 times (timeout). Giving up.
[33mWarning: Task "karma:ci" failed. Use --force to continue.[39m
[31mAborted due to warnings.[39m
    [33mWarning:  Use --force to continue.[39m

    [31mAborted due to warnings.[39m
Grunt failed with error: C:\Users\user1\AppData\Roaming\npm\grunt.cmd failed with return code: 6

【问题讨论】:

  • 您使用的是最新版本的 TFS 2015 Update3 吗?分享您的构建定义和任务设置的屏幕截图,了解如何重现您的问题。
  • 您是否将构建代理配置为在交互模式下运行?
  • @Cece-MSFT -- 我已将屏幕截图添加到原始问题中。在 UI 构建之前,我正在使用 npm install 获取包...
  • @Eddie-MSFT -- 代理配置为作为服务运行
  • 能否将其配置为以交互模式运行,然后重试?

标签: google-chrome tfs build karma-runner tfsbuild


【解决方案1】:

这对我有用:

1) 安装 puppeteer

npm install puppeteer --save-dev

2) 将此代码添加到模块导出函数顶部的 karma conf:

const puppeteer = require('puppeteer');
process.env.CHROME_BIN = puppeteer.executablePath();

3) 禁用 chrome 沙箱:

browsers: ['ChromeNoSandbox'],
customLaunchers: {
    ChromeNoSandbox: {
        base: 'Chrome',
        flags: ['--no-sandbox']
    }
}

【讨论】:

    【解决方案2】:

    我可以通过“nosandbox”启动 Chrome 来重现您的问题并修复它。

    在你的 karma project.conf.js 中使用以下配置:

    browsers: ['ChromeNoSandbox'],
        customLaunchers: {
            ChromeNoSandbox: {
                base: 'Chrome',
                flags: ['--no-sandbox']
            }
        }
    

    【讨论】:

    • 感谢 Eddie,我确实尝试了上述修复,但我仍然面临同样的问题。我也在交互模式下尝试过。当我在交互模式下运行时,谷歌浏览器会打开并运行一种无响应的方式.. 因此,为了解决问题,我创建了一个 vNext 构建定义,它只运行一个 powershell 任务来打开 chrome-start-process "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"..它以无响应模式打开,但它可以从服务器中的 powershell 控制台运行。我在原始帖子中附上了一张 chrome 的图片..我也尝试了旧版本的 chrome,但仍然是同样的问题..
    猜你喜欢
    • 2014-07-13
    • 1970-01-01
    • 1970-01-01
    • 2017-08-31
    • 2016-12-12
    • 2017-08-31
    • 2021-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多