Как использовать другой репортер с методом run() в Vows?
Vows имеет метод run(), который запускает тест под узлом, без использования vows
команда.
На https://github.com/cloudhead/vows/blob/master/lib/vows/suite.js мы видим, что этот метод принимает параметр option, который позволяет указать репортера, отличный от значения по умолчанию:
this.run = function (options, callback) {
var that = this, start;
options = options || {};
for (var k in options) { this.options[k] = options[k] }
this.matcher = this.options.matcher || this.matcher;
this.reporter = this.options.reporter || this.reporter;
Какое значение предполагается передать в объекте параметров, чтобы выбрать другого репортера, например spec
репортер?
3 ответа
Пытаться:
var spec = require("vows/lib/vows/reporters/spec");
// ...
vows.describe("My Tests").addBatch({ /* some batch */ }).run({reporter:spec});
Это был самый простой способ, который работал для меня.
На самом деле, требование к репортеру уже сделано в vows/lib/vows/suite.js
if (options.reporter) {
try {
this.reporter = typeof options.reporter === 'string'
? require('./reporters/' + options.reporter)
: options.reporter;
} catch (e) {
console.log('Reporter was not found, defaulting to dot-matrix.');
}
}
Затем, чтобы использовать его, вы должны просто:
vows.describe('Your suite').addBatch({
// your batch in here
}).run({reporter:'spec'}, function(testResults){
log(testResults);
})
Вам нужен экземпляр репортера. Только один из них является публичным (точечный репортер), как vows.options.reporter
Кроме того, вы можете вырвать любого из репортеров в папке Vows Reporter. и включить его вручную.
Альтернативы будут экспортировать набор обетов (.export(module)
) и позвоните $ vows --spec
или же $ vows --json
,
vows-is также предлагает репортера, похожего на репортера "spec".
Я полагаю, вы могли бы открыть вопрос о клятвах для обнародования репортеров.