前言
前一段时间,为了提高项目组内对单元测试的关注度,利用jenkins的定时部署和邮件发送功能,每天定时给组内人员发送单元测试的报告。另外,再加入了覆盖率报告,以期望达到覆盖率不下降的目标。
jenkins插件
JaCoCo plugin,Email Extension Plugin
jenkins页面
jenkins报告邮件模板
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建</title>
</head>
<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"
offset="0">
<table width="95%" cellpadding="0" cellspacing="0"
style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
<tr>
<td>
<br />
<b><font color="#0B610B">构建信息</font></b>
<hr size="2" width="100%" align="center" />
</td>
</tr>
<tr>
<td>
<ul>
<li>项目名称 : ${PROJECT_NAME}</li>
<li>git分支 : ${GIT_BRANCH}</li>
<li>触发原因 :${CAUSE}</li>
<li>构建日志 : <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>
<li>单元测试报告 :<a href="${BUILD_URL}testReport/">${BUILD_URL}testReport/</a></li>
<li>jacoco覆盖率报告 :<a href="${BUILD_URL}jacoco/">${BUILD_URL}jacoco/</a></li>
</ul>
</td>
</tr>
<tr>
<td><b><font color="#0B610B">失败case</font></b>
<hr size="2" width="100%" align="center" /></td>
</tr>
<tr>
<td>
${FAILED_TESTS}
</td>
</tr>
<tr>
<td><b><font color="#0B610B">测试结果趋势:</font></b>
<hr size="2" width="100%" align="center" /></td>
</tr>
<tr>
<td>
<img src="${PROJECT_URL}test/trend" />
</td>
</tr>
<tr>
<td><b><font color="#0B610B">覆盖率趋势:</font></b>
<hr size="2" width="100%" align="center" /></td>
</tr>
<tr>
<td>
<img src="${PROJECT_URL}jacoco/graph" />
</td>
</tr>
</table>
</body>
</html>
一些不足的地方
原本在邮件模板里想使用jenkins页面上的两个图片,直接使用图片的url的话,由于jenkins没有给guest读权限,邮件接受者如果没有登录jenkins,图表显示不出来。而图片貌似是根据url请求生成的临时图片,在jenkins服务器上找不到存储在磁盘上的图片文件。最后退而求其次,使用jacoco生成的html报告,实际邮件显示并不太理想。
参考资料
http://www.cnblogs.com/sparkdev/p/7397394.html
https://stackoverflow.com/questions/9595286/jenkins-sending-build-trend-graph-as-email
网友评论