如何动态设置要在karma测试中使用的文件

时间:2016-03-30 06:05:27

标签: javascript node.js karma-runner

我有节点文件在节点应用程序中使用karma public api运行karma测试(我将保存写出代码,因为它直接来自http://karma-runner.github.io/0.13/dev/public-api.html)。

到目前为止一切都很好,测试运行。现在我需要开始为业力运行提供不同的文件。例如,我可能有exampleSpec.js,example1.js,example2.js和example3.js。我需要按顺序提供exampleSpec然后是example1-3。

但是,我没有看到任何关于此的文档,似乎无法随处可见。

1 个答案:

答案 0 :(得分:0)

所以,答案结果非常简单。服务器构造函数的第一个参数是一个配置对象,可以替换或扩充karma.conf.js,因此可以发送更改的文件数组。以下代码为后代:

"use strict";

var Server = require('karma').Server;


var filePath = process.cwd();
filePath += "/karma.conf.js";

console.log(filePath);

//files needs to be an array of string file matchers
function runTests(files, port) {
    var config = {
        configFile: filePath,
        files: files,
        port: port
    };
    var server = new Server(config, function(exitCode) {
        console.log('Karma has server exited with ' + exitCode);
        process.exit(exitCode)
    });

    server.on('run_complete', function (browser, result) {
        console.log('A browser run was completed');
        console.log(result);
    });

    server.start();
}

runTests(['test/**/*Spec.js', 'tmp/example.js'], 9876);
runTests(['test/**/*Spec.js', 'tmp/example2.js'], 9877);
runTests(['test/**/*Spec.js', 'tmp/example3.js'], 9878);