Как использовать другой репортер с методом 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".

Я полагаю, вы могли бы открыть вопрос о клятвах для обнародования репортеров.

Другие вопросы по тегам