我正在尝试传递grep
参数,以便karma-mocha
插件将其传递给 Mocha 并仅运行匹配的测试grep
。命令行是这样的:
./node_modules/.bin/karma run -- --grep='one'
但是,Karma 实际上会检查所有测试,就像我不使用--grep
. 根据karma run --help
,之后的一切都--
应该是客户参数。clientArg
(它在帮助和关于如何运行的讨论中被提及karma run
。)我尝试了一个没有 RequireJS 的小项目,它成功了。似乎添加 RequireJS 会导致问题。这是一个重现该问题的小设置:
karma.conf.js
:
module.exports = function(config) {
config.set({
basePath: '',
frameworks: ['mocha', 'requirejs'],
files: [
'test-main.js',
{ pattern: 'test/**/*.js', included: false }
],
exclude: [],
preprocessors: {},
reporters: ['progress'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: false,
browsers: ['Chrome'],
singleRun: false,
concurrency: Infinity
});
};
test-main.js
:
var allTestFiles = [];
var TEST_REGEXP = /(spec|test)\.js$/i;
Object.keys(window.__karma__.files).forEach(function (file) {
if (TEST_REGEXP.test(file)) {
var normalizedTestModule = file.replace(/^\/base\/|\.js$/g, '');
allTestFiles.push(normalizedTestModule);
}
});
require.config({
baseUrl: '/base',
deps: allTestFiles,
callback: window.__karma__.start
});
您在此处看到的内容在功能上等同test-main.js
于最初由karma init
. 它仅被编辑以删除评论、规范空间和添加分号。
该test/test.js
文件包含:
it("one", function () {});
it("two", function () {});