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

Перенаправить вызовы на console.log() на стандартный вывод в тестах Jasmine

Я использую Jasmine через jasmine-maven-plugin, и я хотел бы видеть сообщения console.log() в выводе сборки Maven. Есть ли способ достичь этого?

Если console.log() не может быть перенаправлен, есть ли другой способ регистрации из моих тестов, чтобы они отображались на выходе сборки Maven?

Я выполняю эти тесты на Jenkins безгласным способом и хотел бы получить отладочный результат тестов.

4b9b3361

Ответ 1

Try

console.info('foo')

Из тестовых javascripts.

Ответ 3

Если вы работаете в node env. Вы можете использовать

process.stdout.write( "это будет отправлено на консоль" );

Ответ 4

Я думаю, что невозможно.

Мне пришлось перезаписать реализацию console.log в загрузчике спецификаций. i.e(с использованием jQuery):

var console = {
    panel: $('body').append('<div>').css({position:'fixed', top:0, right:0,background:'transparent'}),
    log: function(m){
        this.panel.prepend('<div>'+m+'</div>');
    }       

};
        console.log('message 1');
        console.log('message 2');

здесь у вас есть функциональный пример

Ответ 5

Я использую jasmine 2 через guard и phantom js, и обнаружил, что стандартные сообщения console.log в тестах выводятся на консоль запуска jasmine spec run fine.

Я также обнаружил, что сообщения console.log внутри элементов кода javascript, которые я тестирую, выписываются в сообщения stdout, но не console.log в самих тестах.

Ответ 6

Перейдите в ту же проблему, используя grunt/karma/jasmine (карма-жасмин 0.2.2) -

Чтобы согласиться с тем, что сказал Дэйв Саг, я обнаружил, что все мои сообщения console.log из кода, который я тестирую, работают нормально, однако ничто из моих describe() {} и it() {} ничего не блокирует.

Я обнаружил, что вы можете войти в блок beforeEach() {}. По крайней мере, это сработало для меня:

beforeEach(function() {
  this.model = new blahModel();
  console.log('this.model = ', this.model);
});

Обратите внимание, что это только журналы в консоли браузера и по какой-то причине не будут входить в командную строку. Несколько странно, когда   console.log операторы из проверенного кодового блока регистрируются в командной строке. Я также нашел, что, по-видимому, лучший подход для последовательного ведения журнала здесь.

UPDATE: на самом деле я вижу, что для него работает также журнал, я полагаю, что у меня были другие ошибки, которые мешали этому.

Ответ 7

Если вы отчаянно нуждаетесь в любом выходе в окне терминала, чтобы вы могли просматривать данные после завершения теста и закрытия браузера, console.error(), похоже, делает трюк.