angular - Karma 不会 headless 运行 ng 测试

标签 angular karma-jasmine

使用 Angular CLI:1.6.6 和 Angular 5,我无法让单元测试在 headless Ubuntu 服务器上运行。

我不断得到:

20 03 2018 16:51:19.719:WARN [karma]: No captured browser, open http://localhost:9876/

在我的 karma 配置中,我有:

customLaunchers: {
  ChromeHeadless: {
    base: 'Chrome',
    flags: [
      '--headless',
      '--disable-gpu',
      // Without a remote debugging port, Google Chrome exits immediately.
      '--remote-debugging-port=9222',
    ],
  }
},

对于安装在 headless 服务器上的我的浏览器:

one@work:~/github$ which google-chrome-stable
/usr/bin/google-chrome-stable

我也在全局范围内安装了 karma-chrome-launcher,但不确定是否需要它。

难道 Karma 正在寻找错误的浏览器文件名?我没有找到任何为浏览器指定文件名的指令。

有什么问题吗?

最佳答案

您缺少浏览器配置。为了使其工作,您需要将“browsers”设置为“Chromeheadless”,如下所示:

customLaunchers: {
    ChromeHeadless: {
      base: 'Chrome',
      flags: [
        '--headless',
        '--disable-gpu',
        '--no-sandbox',
        '--remote-debugging-port=9222',
      ]
    }
  },
  browsers: ['ChromeHeadless'],
  singleRun: false

希望这对您有帮助!

胡安

关于angular - Karma 不会 headless 运行 ng 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49391060/

相关文章:

javascript - 如何在 Angular 的 mat-button 中包装 mat-list-item

angular - 返回时如何跳过浏览器历史记录中的页面?

javascript - Angular 5 : setting (click) value from an object not working

angular - @ngrx/效果 : testing an effect returns empty()

karma-jasmine - karma 报应 + Jasmine + fdescribe

javascript - Angular Material 2 - 在单元测试的 md-checkbox 中触发更改事件

需要身份验证服务的 GET 请求的 Angular Testing

javascript - 如何测试 $(window).on ("load", function() {}); 内的代码在 Jasmine

css - Domsanitizer bypasssecuritytruststyle 在 ie 11 中不起作用

angular - Ionic2:包括 Ionic Push 打破 E2E 测试