无法使用Angular-cli运行Karma

时间:2017-03-07 13:30:26

标签: testing karma-runner karma-jasmine angular-cli

我遇到一个奇怪的问题,发生在我的某个项目中,即使设置完全相同,也无法在其他项目中重现。

每当我尝试运行ng test或别名npm test时,我都会收到两个模块丢失的错误(karma-jasmine-html-reporter& karma-coverage-istanbul-reporter)。虽然这些模块肯定存在!例如:

  

web-app@0.0.3-alpha test / Users / vassilis / Projects / WebApp   ng测试

     

07 03 2017 12:08:27.157:ERROR [config]:配置文件出错!    {错误:无法找到模块'karma-jasmine-html-reporter'       在Function.Module._resolveFilename(module.js:469:15)       在Function.Module._load(module.js:417:25)       在Module.require(module.js:497:17)       at require(internal / module.js:20:19)       在module.exports(/Users/vassilis/Projects/WebApp/karma.conf.js:11:7)       at Object.parseConfig(/Users/vassilis/Projects/WebApp/node_modules/karma/lib/config.js:342:5)       在新服务器上(/Users/vassilis/Projects/WebApp/node_modules/karma/lib/server.js:56:20)       at /Users/vassilis/Projects/WebApp/node_modules/@angular/cli/tasks/test.js:26:31       在Class.run(/Users/vassilis/Projects/WebApp/node_modules/@angular/cli/tasks/test.js:10:16)       在Class.run(/Users/vassilis/Projects/WebApp/node_modules/@angular/cli/commands/test.js:29:25)       在课堂上。 (/Users/vassilis/Projects/WebApp/node_modules/@angular/cli/ember-cli/lib/models/command.js:134:17)       at process._tickCallback(internal / process / next_tick.js:103:7)代码:'MODULE_NOT_FOUND'}   错误的ERR!测试失败。有关详细信息,请参见上文。

这是我的设置:

karma.conf.js
module.exports = function (config) {
  config.set({
    basePath: '',
    frameworks: ['jasmine', '@angular/cli'],
    plugins: [
      require('karma-jasmine'),
      require('karma-chrome-launcher'),
      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
    },
    files: [
      { pattern: './src/test.ts', watched: false }
    ],
    preprocessors: {
      './src/test.ts': ['@angular/cli']
    },
    mime: {
      'text/x-typescript': ['ts','tsx']
    },
    coverageIstanbulReporter: {
      reports: [ 'html', 'lcovonly' ],
      fixWebpackSourcePaths: true
    },
    angularCli: {
      config: './angular-cli.json',
      environment: 'dev'
    },
    reporters: config.angularCli && config.angularCli.codeCoverage
              ? ['progress', 'coverage-istanbul']
              : ['progress', 'kjhtml'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['Chrome'],
    singleRun: false
  });
};
以及angular-cli.json中的相关部分:
"test": {
    "karma": {
      "config": "./karma.conf.js"
    }
  }

我真的很困惑。这似乎是项目相关的问题,但我无法确定Karma是否甚至根本没有运行。关于这个的任何想法?

2 个答案:

答案 0 :(得分:0)

似乎没有安装依赖项,您确定已经安装了这些依赖项吗?

npm install --save-dev karma-jasmine-html-reporter karma-coverage-istanbul-reporter

答案 1 :(得分:0)

这个答案可能为时已晚。像这样删除angularCli中的配置条目

private final Handler handler = new Handler(Looper.getMainLooper());
private void responseListener() {
    if (onBitmapSaveListener != null) {
        handler.post(new Runnable() {
            @Override
            public void run() {
                //TODO execeute code
            }
        });
    }
}

有关详细信息,请参阅此link