Подтвердить что ты не робот

Результаты теста на результат жасмина на консоль


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

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

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

В новейшей версии 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. Источник

Ответ 3

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());

Ответ 4

Для полноты здесь полная конфигурация:

Прежде всего запустите команду 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);