从我的 IDE 发出调试 angular2/karma 测试:永远不会命中断点

Issue debugging angular2/karma tests from my IDE: breakpoints are never hit

我正在尝试从 IntelliJ 调试我的 angular2 业力测试但无济于事。我什至试过禁用代码覆盖。

我的测试中从未遇到过断点。

这是我的业力配置:

// Karma configuration file, see link for more information
// https://karma-runner.github.io/0.13/config/configuration-file.html

module.exports = function (config) {
  config.set({
    basePath: '..',
    frameworks: ['jasmine', '@angular/cli'],
    plugins: [
      require('karma-jasmine'),
      require('karma-chrome-launcher'),
      require('karma-remap-istanbul'),
      require('@angular/cli/plugins/karma')
    ],
    customLaunchers: {
      // chrome setup for travis CI using chromium
      Chrome_travis_ci: {
        base: 'Chrome',
        flags: ['--no-sandbox']
      }
    },
    files: [
      {pattern: './src/test.ts', watched: false}
    ],
    preprocessors: {
      './src/test.ts': ['@angular/cli']
    },
    mime: { 'text/x-typescript': ['ts','tsx'] },
    remapIstanbulReporter: {
      reports: {
        html: 'coverage',
        lcovonly: './coverage/coverage.lcov'
      }
    },
    angularCli: {
      config: './angular-cli.json',
      environment: 'dev'
    },
    reporters: ['progress', 'karma-remap-istanbul'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['Chrome'],
    singleRun: false
  });
};

该应用程序由 angular cli(它本身依赖于 webpack)构建。

有人可以指点一下吗?

你用的是什么版本的cli?该问题可能是由 v1.0.0-beta.21 中引入的 sourcemap 默认更改引起的:https://github.com/angular/angular-cli/compare/v1.0.0-beta.20-1...v1.0.0-beta.21.

v1.0.0-beta.20-1:

devtool: 'inline-source-map'

v1.0.0-beta.21

devtool: testConfig.sourcemap ? 'inline-source-map' : 'eval',

通过在 karma.conf.js 中添加 "sourcemap: true" 可以在本地解决此问题:

module.exports = function (config) {
  config.set({
    ...
    angularCli: {
      config: './angular-cli.json',
      environment: 'dev',
      sourcemap: true
    }
    ...
  });
};