Karma public api缺少configFile选项

egu*_*eys 1 javascript node.js gruntjs karma-runner gulp

gulp-karma建议像这样的外部配置文件:

module.exports = {
    basePath: '',
    singleRun: true
};
Run Code Online (Sandbox Code Playgroud)

我想要一个像这样的外部配置文件(grunt-karma样式):

module.exports = function(config) {
    config.set({
         basePath: '',
         singleRun: true
    });
};
Run Code Online (Sandbox Code Playgroud)

如何使用proper config filewith karma API.

细节:

我使用一饮而尽-卡玛,并提到 ,我要实现它在我自己的.

Karma API非常简单:

var server = require('karma').server;
server.start(config, done);
Run Code Online (Sandbox Code Playgroud)

config变量很模糊.它是一个配置的普通对象:

var config = {
    basePath: '',
    singleRun: true
    // ...
}
Run Code Online (Sandbox Code Playgroud)

我们来看看grunt-karma:

示例grunt-karma配置:

karma: {
  unit: {
      configFile: 'karma.conf.js'
  }
}
Run Code Online (Sandbox Code Playgroud)

grunt-karma配置可以采取一个configFile选项,这在任何地方都没有记录.

我可以看到,我可以configFilekarma源代码传递一个选项:

var config = cfg.parseConfig(cliOptions.configFile, cliOptions);

是否有提及configFile选项的Karma API文档,grunt-karma如何知道 使用它.

jbi*_*ick 8

这个问题令人惊讶地相关,并且这些评论中的大多数都对本文末尾提出的实际问题轻描淡写:"grunt-karma如何知道使用带有属性的配置对象configFile.

我也一直想知道同样的事情,因为该属性未在karma配置文档中的任何位置列出.例如,如果我想通过我的gulpfile中的公共API运行我的业力测试.它看起来像这样:......

var karmaConfig = require('spec/karma.conf.js');
// where my config file exports an object with properties like exclude:, path:
karma.start(karmaConfig)}, process.exit);
Run Code Online (Sandbox Code Playgroud)

这样可以正常工作,除非我想导出配置功能,所以我可以使用配置常量(在此概述):

// allows me to do this

module.exports = function(config) {
    config.set({
        logLevel: config.LOG_INFO
    });
}
Run Code Online (Sandbox Code Playgroud)

但除非你使用这样的东西,否则没有办法让它工作:

karma.start({configFile: 'spec/karma.conf.js'}, process.exit);
Run Code Online (Sandbox Code Playgroud)

我只是传入一个带有configFile指向实际配置文件的属性的对象.

Karma文档在任何地方都没有提到这一点(截至本评论),但这是使用config函数导出方法通过API完成运行测试的唯一方法.