Вывод результатов теста жасмина на консоль - PullRequest
39 голосов
/ 23 августа 2011


Я использую Jasmine (BDD Testing Framework for JavaScript) в своем дополнении к Firefox для проверки функциональности моего кода.

Проблема в том, что jasmine выводит результаты теста в файл HTML, а мне нужна Firebug Console или другое решение для вывода результатов.

Ответы [ 4 ]

29 голосов
/ 23 августа 2011

Вы пробовали ConsoleRepoter

jasmine.getEnv().addReporter(new jasmine.ConsoleReporter(console.log));

В соответствии с кодом у Jasmine есть класс ConsoleReporter, который выполняет функцию печати (в данном случае console.log), которая должна делать то, что вам нужно.

Если ничего не помогает, вы можете использовать это как отправную точку для реализации собственного репортера console.log.

15 голосов
/ 10 января 2014

В новейшей версии Jasmine (2.0) , если вы хотите получить тестовый вывод на консоль, вам нужно добавить следующие строки.

var ConsoleReporter = jasmineRequire.ConsoleReporter();
var options = {
   timer: new jasmine.Timer, 
   print: function () {
      console.log.apply(console,arguments)
}};
consoleReporter = new ConsoleReporter(options); // initialize ConsoleReporter
jasmine.getEnv().addReporter(consoleReporter); //add reporter to execution environment

Вывод в html включен по умолчанию, поэтому, если вы вообще не хотите выводить html, вам нужно отредактировать файл boot.js и удалить оттуда соответствующие строки. Если вы хотите настроить отображение вывода в консоли, отредактируйте файл console.js. Источник

5 голосов
/ 19 ноября 2015

jasmineRequire.ConsoleReporter не существовал в 2.3.0, поэтому я использовал следующий код:

//create a console.log reporter
var MyReporter = function(){jasmineRequire.JsApiReporter.apply(this,arguments);};
MyReporter.prototype = jasmineRequire.JsApiReporter.prototype;
MyReporter.prototype.constructor = MyReporter;
MyReporter.prototype.specDone=function(o){
    o=o||{};
    if(o.status!=="passed"){
      console.warn("Failed:" + o.fullName + o.failedExpectations[0].message);
    }
};
var env = jasmine.getEnv();
env.addReporter(new MyReporter());
3 голосов
/ 19 июня 2017

Для полноты вот полная конфигурация:

Прежде всего выполните команду npm install:

npm install jasmine-console-reporter --save-dev

Затем проверьте свою конфигурацию Jasmine, чтобы убедиться, что у вас там есть помощники:

spec/support/jasmine.json

{
    "spec_dir": "spec",
    "spec_files": [
        "**/*[sS]pec.js"
    ],
    "helpers": [
        "helpers/**/*.js"
    ],
    "stopSpecOnExpectationFailure": false,
    "random": false
}

Поскольку помощники выполняются перед спецификациями, единственное, что вам нужно сделать, - это создать вспомогательный помощник-репортер.

spec/helpers/reporter/consoleReporter.js

const JasmineConsoleReporter = require('jasmine-console-reporter');

let consoleReporter = new JasmineConsoleReporter({
    colors: 1,           // (0|false)|(1|true)|2
    cleanStack: 1,       // (0|false)|(1|true)|2|3
    verbosity: 4,        // (0|false)|1|2|(3|true)|4
    listStyle: 'indent', // "flat"|"indent"
    activity: false
});

jasmine.getEnv().addReporter(consoleReporter);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...