在Jasminetesting中将调用redirect到console.log()以标准输出
我通过jasmine-maven-plugin使用Jasmine,我想在Maven构build输出中看到console.log()消息。 有没有办法做到这一点?
如果console.log()不能被redirect,还有没有其他方法可以从我的testing中logging下来,以便它们显示在Maven构build输出中?
我正以无头的方式在Jenkins上运行这些testing,并希望能够从testing中获得一些debugging输出。
尝试
console.info('foo')
从testingjavascripts。
您可以使用:
jasmine.log("I've got a big log.");
注意:请参阅下面的道格拉斯·斯皮尔韦尔的评论。
如果你正在运行一个节点env。 你可以使用
process.stdout.write(“这将被发送到控制台”);
我通过guard
和phantom js
使用jasmine 2
,并发现testing中的标准console.log
消息输出到茉莉花规格亚军的控制台就好了。
我也发现,我正在testing的JavaScript代码元素中的console.log
消息会写出到stdout
而不是testing本身内的console.log
消息。
我认为这是不可能的 。
我不得不在spec加载器中覆盖console.log实现。 即(使用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');
在这里你有一个function的例子
用grunt / karma / jasmine(karma-jasmine 0.2.2)跑进同样的问题 –
为了配合Dave Sag说的话,我发现我所testing的代码中的所有console.log
消息都运行正常,但是我的describe() {}
和it() {}
都没有logging任何东西。
我确实发现可以从beforeEach() {}
块login。 至less它对我有效:
beforeEach(function() { this.model = new blahModel(); console.log('this.model = ', this.model); });
请注意,这只能在浏览器控制台中login,并且由于某种原因不会login命令行。 当testing代码块的console.log语句在命令行中login时,会有些奇怪。 我也发现这里似乎是一个更好的一致性日志logging方法。
更新:我实际上看到日志工作的块,以及我相信我有其他错误,阻止了这一点。
如果你对terminal窗口中的任何输出感到绝望,所以你可以在testing完成并且浏览器closures之后再查看数据, console.error()
似乎是个窍门。