javascript - 如何动态设置 karma 测试中使用的文件

标签 javascript node.js karma-runner

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

到目前为止一切都很好,测试正在运行。现在我需要开始为 karma 运行提供不同的文件。例如,我可能有 exampleSpec.js、example1.js、example2.js 和 example3.js。我需要依次提供 exampleSpec 和 example1-3。

但是,我没有看到任何关于此的文档,并且似乎无法得到任何信息。

最佳答案

所以,答案非常简单。服务器构造函数的第一个参数是一个配置对象,它可以替换或增强 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);

关于javascript - 如何动态设置 karma 测试中使用的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36300909/

相关文章:

node.js - 将智能从 LUIS 转移到 QnA

javascript - 开始安装 Karma 和 Jasmine - jasmine.Suite() 需要错误

javascript - 单元测试错误 "Fatal error: write after end"

javascript - 如何有条件地检查对象值是否已设置或等于 smth 并跟踪更改?

javascript - 在缩放元素上重新计算变换原点

javascript - 访问 react 元素的 child

javascript - socket.emit 不适用于移动 chrome(但它适用于隐身模式)

javascript - 将 socket.io(客户端)JSON 传递给 Vue.js 组件

node.js - Visual Studio 2013/2015 - Node 包构建错误 (gulp_util)

angularjs - web worker的单元测试代码