我通过 jasmine-maven-plugin 使用 Jasmine,我想在 Maven 构建输出中看到 console.log() 消息。有没有办法做到这一点?
如果无法重定向 console.log(),是否有任何其他方法可以从我的测试中记录日志,以便它们显示在 Maven 构建输出中?
我正在以无头方式在 Jenkins 上运行这些测试,并且想要一种从测试中获得一些调试输出的方法。
我通过 jasmine-maven-plugin 使用 Jasmine,我想在 Maven 构建输出中看到 console.log() 消息。有没有办法做到这一点?
如果无法重定向 console.log(),是否有任何其他方法可以从我的测试中记录日志,以便它们显示在 Maven 构建输出中?
我正在以无头方式在 Jenkins 上运行这些测试,并且想要一种从测试中获得一些调试输出的方法。
尝试
console.info('foo')
从测试javascripts。
如果您在节点环境中运行。你可以使用
process.stdout.write("this will be send to the console");
我认为这是不可能的。
我不得不覆盖规范加载器中的 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');
这里 有一个功能示例
If you're desperate for any output in a Terminal window so you can have data to review after the test has completed and the browser has closed, console.error()
seems to do the trick.
使用 grunt/karma/jasmine (karma-jasmine 0.2.2) 遇到同样的问题 -
按照 Dave Sag 的说法,我发现console.log
我正在测试的代码中的所有消息都运行良好,但是我的describe() {}
和it() {}
块中没有任何内容记录任何内容。
我确实发现您可以从一个beforeEach() {}
块中登录。至少它对我有用:
beforeEach(function() {
this.model = new blahModel();
console.log('this.model = ', this.model);
});
请注意,这只会登录浏览器控制台,并且由于某种原因不会登录命令行。当来自测试代码块的 console.log 语句在命令行中登录时有点奇怪。我还发现这里似乎是一种更好的一致日志记录方法。
更新:我实际上也看到了它的日志记录工作块,我相信我有其他错误阻止了这一点。
我正在使用jasmine 2
viaguard
并且phantom js
发现console.log
测试中的标准消息可以很好地输出到 jasmine spec runner 的控制台。
我还发现,console.log
我正在测试的 javascript 代码元素中的消息确实会被写入,stdout
但不会写入console.log
测试本身中的消息。
1) 转到您拥有 pom.xml 的项目目录。在 cmd 中运行以下命令。mvn 茉莉花:bdd
2)您将获得 localhost URL:localhost:8234(只是一个示例)。
3) 在浏览器中运行此 URL。现在你所有的测试用例都被执行了。
4)做这个页面的检查元素。在浏览器控制台中,您将能够看到所有 console.log() 或 console.error() 跟踪。