在Gulp Karma测试中设置调试选项

时间:2017-02-24 19:37:40

标签: javascript gulp karma-runner karma-jasmine gulp-karma

根据this post(以及一般互联网),如果我想在没有这些代码覆盖率命令的情况下运行Karma测试......

__cov_9C0014nbzu2SxN3FICah6Q.f['35']++;
__cov_9C0014nbzu2SxN3FICah6Q.s['138']++;

...我只需在终端中设置--debug选项,如下所示:

$ karma start karma.conf.js --browsers=Chrome --single-run=false --debug

但是,当通过Gulp任务运行您的Karma测试时,文档似乎丢失了。我在下面使用简单的karma.start配置对象。我已经尝试将debug属性设置为true或str '--debug',但似乎都没有效果(尽管测试确实在运行/跑步者没有'}崩溃)。

karma.start({
    configFile: __dirname + '/karma.conf.js',
    exclude: excludeFiles,
    singleRun: !!singleRun,
    debug: '--debug'
}, karmaCompleted);

在从Gulp任务运行Karma测试时,如何设置调试选项的任何想法?

1 个答案:

答案 0 :(得分:6)

在我传递给debug: true的options对象中设置karma.start与在命令行使用--debug一样有效。换句话说,你在Gulpfile中所做的就是获得Karma的debug选项。然而,

  

我只需在终端中设置--debug选项就像这样

不,您链接的页面显示您还需要自定义配置以调整预处理器列表,以便在使用--debug时列表为空。您遇到的问题与未能正确执行该自定义一致。

以下是如何执行自定义。这将从Karma已从命令行解析的配置中查询config.debug的值:

module.exports = function configure(config) {
  config.set({
    // ...
    preprocessors: {
      "index.js": config.debug ? [] : ["coverage"],
    },
    // ...
  });
};

当您从Gulp调用Karma时,扫描process.argv --debug之类的建议在您接受该想法的页面上工作,因为debug选项直接通过组态。检查config.debug在命令行和通过它的程序化API调用Karma时都能正常工作。