因果报应服务器在角度单元测试中产生未知-4094错误



由于无法理解的原因,我无法再在我的Angular项目中运行单元测试,因为Karma服务器抛出了如下所示的奇怪错误。

我只是运行npm test来触发单元测试,它应该启动一个web浏览器来启动Karma服务器,然后Jasmine来显示测试执行情况。

这是在使用VS代码的Windows 10 PC上。

PS C:Codemy-project> npm test
> my-project@1.0.0 test
> ng test
05 04 2022 13:45:19.898:WARN [karma-server]: Passing raw CLI options to `new Server(config, done)` is deprecated. Use `parseConfig(configFilePath, cliOptions, {promiseConfig: true, throwErrors: true})` to prepare a processed `Config` instance and pass that as the `config` argument instead.
⠙ Generating browser application bundles (phase: building)...05 04 2022 13:45:30.857:WARN [karma]: No captured browser, open http://localhost:9876/
05 04 2022 13:45:30.864:INFO [karma-server]: Karma v6.3.12 server started at http://localhost:9876/
05 04 2022 13:45:30.865:INFO [launcher]: Launching browsers Chrome with concurrency unlimited
05 04 2022 13:45:30.872:INFO [launcher]: Starting browser Chrome
05 04 2022 13:45:30.945:ERROR [karma-server]: UncaughtException: Error: spawn UNKNOWN
at ChildProcess.spawn (internal/child_process.js:403:11)
at spawn (child_process.js:667:9)
at spawnWithSignal (child_process.js:871:17)
at spawnWithoutOutput (C:Codemy-projectnode_moduleskarmaliblaunchersprocess.js:174:26)
at Object.ProcessLauncher._execCommand (C:Codemy-projectnode_moduleskarmaliblaunchersprocess.js:75:21)
at Object.ProcessLauncher._start (C:Codemy-projectnode_moduleskarmaliblaunchersprocess.js:33:10)
at Object.<anonymous> (C:Codemy-projectnode_moduleskarmaliblaunchersprocess.js:19:10)
at Object.emit (events.js:412:35)
at Object.BaseLauncher.start (C:Codemy-projectnode_moduleskarmaliblaunchersbase.js:52:10)
at Object.j (C:Codemy-projectnode_moduleskarmaliblauncher.js:108:17)
at Object.setTimeout.bind.j (C:Codemy-projectnode_modulesqjobsqjobs.js:143:18)
at listOnTimeout (internal/timers.js:557:17)
at processTimers (internal/timers.js:500:7)
05 04 2022 13:45:30.949:ERROR [karma-server]: Error: spawn UNKNOWN
at ChildProcess.spawn (internal/child_process.js:403:11)
at spawnWithSignal (child_process.js:871:17)
at spawnWithoutOutput (C:Codemy-projectnode_moduleskarmaliblaunchersprocess.js:174:26)
at Object.ProcessLauncher._execCommand (C:Codemy-projectnode_moduleskarmaliblaunchersprocess.js:75:21)
at Object.ProcessLauncher._start (C:Codemy-projectnode_moduleskarmaliblaunchersprocess.js:33:10)
at Object.<anonymous> (C:Codemy-projectnode_moduleskarmaliblaunchersprocess.js:19:10)
at Object.emit (events.js:412:35)
at Object.BaseLauncher.start (C:Codemy-projectnode_moduleskarmaliblaunchersbase.js:52:10)
at Object.j (C:Codemy-projectnode_moduleskarmaliblauncher.js:108:17)
at Object.setTimeout.bind.j (C:Codemy-projectnode_modulesqjobsqjobs.js:143:18)
at listOnTimeout (internal/timers.js:557:17)
at processTimers (internal/timers.js:500:7) {
errno: -4094,
code: 'UNKNOWN',
syscall: 'spawn'
}

我的解决方案是在公司笔记本电脑上卸载并重新安装谷歌Chrome。

可能的解决方案可以是(第2点对我有效(

  1. 重新安装谷歌chrome。(这可能有助于使用本地chrome.exe文件的用户(
  2. 我的项目是使用CHROME来运行ChromeHeadless,我不得不在指向CHROME路径的karma conf文件中注释CHROME_BIN。通过这样做,Karma将使用本地chrome.exe文件(C:\Program file\Google\chrome\Application\chrome.exe(,而不是chrome路径。这个解决方案解决了我的问题,我可以在本地运行测试用例

最新更新