プログラムでカルマを使用して、複数のカルマ ランナーを連鎖させることができます。Karmaは、プログラムで動作させるための APIを提供します (これはそれほど明確ではありません - いくつかの例ではそれを改善できます)。
まず、構成の配列が必要です。次に、プログラムでカルマを呼び出し、呼び出しをチェーンする必要があります。
構成の配列を作成する
function getConfiguration(filename){
return {
// you can enrich the template file here if you want
// e.g. add some preprocessor based on the configuration, etc..
//
// if not set in the config template
// make Karma server launch the runner as well
singleRun: true,
// point to the template
configFile : __dirname + filename
};
}
function createConfigurations(){
return [getConfiguration('conf1.js'), getConfiguration('conf2.js'), etc...];
}
プログラムで Karma を開始する
function startKarma(conf, next){
karma.server.start(conf, function(exitCode){
// exit code === 0 is OK
if (!exitCode) {
console.log('\tTests ran successfully.\n');
// rerun with a different configuration
next();
} else {
// just exit with the error code
next(exitCode);
}
});
連鎖するカルマランナー
// Use the async library to make things cleaner
var async = require('async');
var karma = require('karma');
var confs = createConfigurations();
async.eachSeries(confs, startKarma, function(err){
if(err){
console.log('Something went wrong in a runner');
else {
console.log('Yay! All the runners have finished ok');
}
});