Chrome 由从 MSBuild 执行的 Karma 启动时崩溃

Chrome crashing when launched by Karma executed from MSBuild

我的构建服务器服务正在从 msbuild 文件执行以下命令:

Exec Command="karma start $(LandscapeExplorerProjectFolder)karma.conf.js -- log-level debug

这会在 Node.js

上启动一个 Karma 实例 运行ning

Karma 配置为启动 Chrome 到 运行 我的 Jasmine 测试。当我通过登录到服务器并在命令提示符中键入来手动执行上述命令时,测试 运行 如我所料。

然而,当我的构建服务启动 Karma 时,Chrome 最初启动但随后崩溃。

从 运行 构建时控制台的输出我得到以下信息:

WARN [launcher]: [39mChrome have not captured in 60000 ms, killing.
DEBUG [launcher]: [39mProcess Chrome exited with code 0

查看 Chrome 日志时,我看到:

[6888:2988:1105/162913:ERROR:child_process_launcher.cc(444)] Failed to launch child process
[6888:2988:1105/162913:WARNING:sad_tab_view.cc(105)] Tab Killed: http://localhost:9876/

完全相同的控制台命令在手动执行时工作正常,但构建服务执行某些事情的方式导致 Chrome 崩溃。有人对此有任何想法吗?

我以前见过这个问题。 我无法解决它,但能够解决它。 这似乎与 运行ning Jenkins 作为 Windows 上的 SYSTEM 帐户有关 - 如果是这种情况,请尝试将服务更改为 运行 作为服务帐户。

我使用 PSexec 解决了这个问题 - 您可以在以下位置下载该工具: https://technet.microsoft.com/en-us/sysinternals/bb897553.aspx

然后在作业中使用它来执行 Karma: C:\Path\to\pexec.exe -s -i -accepteula karma start $(LandscapeExplorerProjectFolder)karma.conf.js -- 日志级调试

同样,这似乎与使用 SYSTEM 生成子进程有关。