为什么Angular Karma Test(npm测试)无法启动谷歌浏览器并最终得到错误代码8?

时间:2017-08-01 07:34:18

标签: angular google-chrome-extension karma-runner karma-jasmine

环境

  • Windows 10
  • Angular 4
  • Karma 1.7.0

我完全是这个主题的新手,我尝试只运行一个简单的测试。但我一直到达以下错误消息:

01 08 2017 09:21:59.859:DEBUG [launcher]: C:\Users\Me\AppData\Local\Google\Chrome\Application\chrome.exe --user-data-dir=C:\Users\Me\AppData\Local\Temp\karma-53868757 --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-background-timer-throttling --disable-renderer-backgrounding --disable-de
vice-discovery-notifications http://localhost:9876/?id=53868757
01 08 2017 09:22:02.925:DEBUG [launcher]: Process Chrome exited with code 8
01 08 2017 09:22:02.925:ERROR [launcher]: Cannot start Chrome
[10036:6688:0801/092200:ERROR:external_registry_loader_win.cc(89)] Missing value path for key Software\Google\Chrome\Extensions\flliilndjeohchalpbbcdekjklbdgfkk.
[10036:6688:0801/092200:ERROR:external_registry_loader_win.cc(89)] Missing value path for key Software\Google\Chrome\Extensions\lifbcibllhkdhoafpjfnlhfpfgnpldfl.
[10036:6688:0801/092200:ERROR:external_registry_loader_win.cc(89)] Missing value path for key Software\Google\Chrome\Extensions\lmjegmlicamnimmfhcmpkclmigmmcbeh.

如果我尝试启动浏览器itselfe(C:\Users\Me\AppData\Local\Google\Chrome\Application\chrome.exe),则浏览器启动。

其他信息

  • 服务器在线
  • 存在测试用例
  • npm install已完成
  • 命令npm test以管理员(Powershell)
  • 运行

我在错误提醒中找到一条信息,其中包含以下信息(已翻译)

  

管理员已在此系统上安装了Google Chrome。它是   适用于所有用户。在系统级别安装Google Chrome   现在替换用户级别的安装。

enter image description here

如果我点击“确定”没有任何反应,程序会尝试再次启动Chrome,同样在没有任何情况下也是如此。最终得到:01 08 2017 10:15:46.782:ERROR [launcher]: Chrome failed 2 times (cannot start). Giving up.

我使用最新的Google Chrom版本。

enter image description here

** Karma配置文件**

module.exports = function (config) {
  config.set({
    basePath: '',
    frameworks: ['jasmine', '@angular/cli'],
    plugins: [
      require('karma-jasmine'),
      require('karma-chrome-launcher'),
      require('karma-tap'),
      require('karma-sourcemap-loader'),
      require('karma-webpack'),
      require('karma-jasmine-html-reporter'),
      require('karma-coverage-istanbul-reporter'),
      require('@angular/cli/plugins/karma')
    ],
    client:{
      clearContext: false // leave Jasmine Spec Runner output visible in browser
    },
    coverageIstanbulReporter: {
      reports: [ 'html', 'lcovonly' ],
      fixWebpackSourcePaths: true
    },
    angularCli: {
      environment: 'dev'
    },
    reporters: ['progress', 'kjhtml'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_DEBUG,
    autoWatch: true,
    captureTimeout: 60000,
    browserNoActivityTimeout: 360000,
    browsers: ['Chrome'],
    singleRun: false
  });
};

可能是什么问题? 如何设置缺失值路径?

1 个答案:

答案 0 :(得分:0)

嗯,现在它有效。看起来PowerShell不知道我的Chrome-Path。 我设置变量,现在它工作得很好。

 $Env:CHROME_BIN = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"