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

Set debugging option in Gulp Karma test

根据 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 或字符串 '--debug',但似乎都没有效果(尽管测试 run/the 运行ner 不会崩溃)。

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

在从 Gulp 任务 运行 进行 Karma 测试时如何设置调试选项?

在我传递给 karma.start 的选项对象中设置 debug: true 与在命令行中使用 --debug 一样有效。换句话说,您在 Gulp 文件中所做的工作可以使 Karma 获得 debug 选项。然而,

I simply need to set the --debug option in the terminal like so

不,您 link 访问的页面显示您 还需要自定义配置以调整预处理器列表 以便在使用 --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 在命令行和通过程序调用 Karma 时都有效 API.