10

根据这篇文章(和一般互联网),如果我想在没有这些代码覆盖命令的情况下运行 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属性设置为trueor 或 strign '--debug',但似乎都没有效果(尽管测试确实运行/运行器不会崩溃)。

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

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

4

1 回答 1

6

debug: true在我传递给的选项对象中进行设置与在命令行karma.start中使用一样。--debug换句话说,你所说的你在 Gulpfile 中所做的工作是为了获得debugKarma 的选项。然而,

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

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

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

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

当您从 Gulp 调用 Karma 时,扫描您从中获取想法的页面上process.argv--debug类似建议将不起作用,因为该debug选项直接通过配置传递。检查config.debug在命令行和通过它的编程 API 调用 Karma 时都有效。

于 2017-02-28T16:05:08.520 回答