好吧,我想知道如何在jenkins中找回测试失败的信息。
这里是我的文件夹(fr)的结果(显示22分钟,但并行显示为3分钟):
这里测试的描述失败-jenkins-:
此处测试的描述失败-casper-:
所以我的问题是jenkins只显示测试的消息失败了,我想将有用的信息作为行和代码(实际上有控制台输出,但它不方便 - >我已经改变了我的我的,见xUnit with Jenkins: how to display colors in the Build Console Output?,但我仍然想要'堆'exécution'/执行堆栈中的信息。
答案 0 :(得分:8)
我找到了解决方案,只需更改消息......:
casper.test.on("fail", function(failure) {
failure.message = "Message : " + failure.message + "\nLine : "+ failure.line + "\nCode : " + failure.lineContents;
});
错误恢复堆栈(带有test.begin)也会被修改。但是我不会在jenkins中关心,所以我们可以使用像if casper.cli.get('xunit') { casper.test.on('fail'){...} ;}
这样的条件。
所以:
实际上相当简单......我应该有更好的搜索。
对于Artjom :
事实上,对于错误,它非常详细,所以我不认为有更改要做,请参阅:
但你仍然可以用同样的方式自定义它,它可能是这样的:
casper.test.on("fail", function(failure) {
//if error type undefined function
if(failure.message.message){//or failure.message.stack.TypeError
failure.message.message = "Message : " + failure.message.message + "\nLine : "+ failure.message.line;//in jenkins -> title
}
//else assert error
else{failure.message = "Message : " + failure.message + "\nLine : "+ failure.line + "\nCode : " + failure.lineContents;}
//console.log(JSON.stringify(failure,4,'\t')); //see parameters you can modify in the failure object
});
此失败事件中没有错误事件,但不同的对象属性(与错误类型相比)。所以你可以按照你想要的方式操纵它们。但我个人感兴趣的是消息,代码和行(默认情况下jenkins用未定义的错误管理它们)。
现在我正在开发一种显示屏幕截图路径的方法,有类似的东西:
Message : No notice on the page
Line : 83
Code : this.test.assertTextDoesntExists('Notice', 'No notice on the page');
Screenshot : http://-jenkins-/job/-myJob-//lastFailedBuild/artifact/screenshots/fail0.png/
嗯,我做到了: https://github.com/n1k0/casperjs/pull/920
目的是使用浏览器直接点击jenkins中的链接并显示屏幕:)