Karma:从命令行运行单个testing文件

所以,我一直在寻找这个,在这里find“类似”的答案,但不完全是我想要的。

现在,如果我想testing一个单一的文件与业力,我需要做fit()fdescribe()在文件中的问题…

然而,我所要做的就是能够使用configuration文件调用karma,并将其指向特定的文件,所以我根本不需要修改该文件,即:

karma run --conf karma.conf.js --file /path/to/specific/test_file.js

是否有可能做到这一点? 或者与任何帮手? (使用咕噜声还是吞咽?)

首先你需要启动因果服务器

 karma start 

然后,您可以使用grep来过滤特定的testing或描述块:

 karma run -- --grep=testDescriptionFilter 

即使 – --files不再受支持,您可以使用envvariables来提供文件列表:

 // karma.conf.js function getSpecs(specList) { if (specList) { return specList.split(',') } else { return ['**/*_spec.js'] // whatever your default glob is } } module.exports = function(config) { config.set({ //... files: ['app.js'].concat(getSpecs(process.env.KARMA_SPECS)) }); }); 

然后在CLI中:

 $ env KARMA_SPECS="spec1.js,spec2.js" karma start karma.conf.js --single-run 

最近版本的业力不再支持这个选项:

https://github.com/karma-runner/karma/issues/1731#issuecomment-174227054

文件数组可以使用CLI重新定义,如下所示:

 karma start --files=Array("test/Spec/services/myServiceSpec.js") 

或逃脱:

 karma start --files=Array\(\"test/Spec/services/myServiceSpec.js\"\) 

参考

  • karma-runner来源:cli.js

  • karma-runner源码:config.js