昨天接到需求,要将邮件内容更直观体现。然而之前写了很多断言都没有指明哪些url报错,整个改太麻烦。就想到指定一个侦听器,继承TestListenerAdapter并且实现ITestListener,在onTestFailure方法下将错误信息重写一下。想法很好。
问题就来了。在本地用idea的run跑能看到重写的错误信息输出,但是用maven命令运行mvn clean test,运行结果并没有重写的message信息。这个稍微坑了我一下。没办法只能system.out.println(message[0]);
输出出来后再通过Jenkins的${BUILD_LOG_MULTILINE_REGEX}这个参数,正则过滤。参考https://blog.csdn.net/chengtong_java/article/details/49815311
不过关于这个参数还真没搜到讲解的,唯一搜到的http://blog.163.com/hywang_yl/blog/static/2397761012016665532949/
看起来这个正则写法应该就是()里加正则表达式。所以过滤这个错误信息描述就:
${BUILD_LOG_MULTILINE_REGEX,showTruncatedLines="false",regex="ERRORMESSAGE:(.*)"}
不过唯一的缺点就是这些错误信息不能换行,换行就匹配不到了。匹配换行符的话可能需要其他的写法了,不过没有在深入研究这个表达式了。如果有懂的欢迎评论指出。
网友评论