在Jasmine测试中将对console.log()的调用重定向到标准输出

Lór*_*tér 60 javascript jasmine jasmine-maven-plugin

我通过jasmine-maven-plugin使用Jasmine,我想在Maven构建输出中看到console.log()消息.有没有办法实现这个目标?

如果无法重定向console.log(),是否还有其他方法可以从我的测试中进行记录,以便它们显示在Maven构建输出上?

我正在以无头的方式在Jenkins上运行这些测试,并希望能够从测试中获得一些调试输出.

use*_*062 55

尝试

console.info('foo')
Run Code Online (Sandbox Code Playgroud)

来自测试javascripts.

  • 总是喜欢听到downvotes的反馈! (12认同)
  • 为什么.info而不是.log? (4认同)
  • 奇怪的是,使用Jasmine 2.5,我不得不这样做而不是console.log.我有详细说明,但是console.log没有显示(它显示日志行+空字符串),而console.info实际上显示了日志行+我记录的任何内容. (2认同)

Ban*_*San 37

您可以使用:

jasmine.log("I've got a big log.");
Run Code Online (Sandbox Code Playgroud)

注意:请参阅下面的douglas-treadwell的评论.

这是指Jasmine 1.x. 使用Jasmine 2.0,只需直接使用console.log.

  • 这是指Jasmine 1.x. 使用Jasmine 2.0,只需直接使用console.log. (11认同)
  • 这对我不起作用; 运行`mvn jasmine:test`(使用插件版本1.3.1.3,htmlunit 2.13)时,我在终端的任何地方都看不到`jasmine.log`的输出 (8认同)
  • @PavelLishin,它不会打印到您的控制台窗口,但它会打印到Web跑步者. (2认同)

小智 11

如果您在节点环境中运行.你可以用

process.stdout.write("这将发送到控制台");


Mar*_*iry 4

我认为这是不可能的

\n\n

我必须覆盖规范加载器中的 console.log 实现。即(使用 jQuery)

\n\n
var console = {\n    panel: $(\'body\').append(\'<div>\').css({position:\'fixed\', top:0, right:0,background:\'transparent\'}),\n    log: function(m){\n        this.panel.prepend(\'<div>\'+m+\'</div>\');\n    }       \n\n};\n        console.log(\'message 1\');\n        console.log(\'message 2\');\n
Run Code Online (Sandbox Code Playgroud)\n\n

\xe2\x80\x8b\n这里有一个功能示例

\n

  • IIUC,这会将 console.log() 消息打印到 &lt;div&gt; 中。我想要的是将它放在 Maven 构建的标准输出上。我错过了什么吗? (4认同)