在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()似乎是个窍门。