我有一个执行一些 junit 测试的 jenkins 作业,以及一个在测试失败时调用 bash 脚本的构建后步骤(实际上检查日志是否包含“错误测试:”)。然后脚本将一些文本(利用一些 jenkins 的环境变量)发送到 Skype 机器人。
现在我想让机器人说出哪些测试实际上失败了。我一直在浏览插件和谷歌,但到目前为止我无法判断哪些测试失败。有没有办法将失败的测试传递给脚本,或者在构建之后/期间设置环境变量?
我们有一个执行单元测试的 jenkins 作业,并且有一个“发布 JUnit 测试报告”的构建后步骤。
这为我们提供了一个显示测试结果的页面,包括失败的测试。您的脚本的一种选择是获取该页面并从屏幕中抓取失败的测试名称(它们被隐藏在我们安装中的“showFailuresLink”函数中)。
该页面也可通过 REST API 访问。我玩了一下,发现了这样的请求:
http://host:7098/jenkins/job/ExecuteUnitTests/166/testReport/api/json?pretty=true&tree=suites[cases[className,name,age,status]]
Run Code Online (Sandbox Code Playgroud)
给出这样的结果:
{
"suites" : [
{
"cases" : [
{
"age" : 0,
"className" : "com.e.authentication.SimpleAuthenticationInfoTest",
"name" : "testGetCredentialKeys",
"status" : "PASSED"
},
{
"age" : 0,
"className" : "com.e.authentication.SimpleAuthenticationInfoTest",
"name" : "testGetExpirationInterval",
"status" : "PASSED"
},
...
Run Code Online (Sandbox Code Playgroud)
简单到可以解析出年龄 > 0 或状态 != PASSED 的条目。可能有一种方法可以进一步完善请求以获得您想要的内容,但我没时间玩它。
| 归档时间: |
|
| 查看次数: |
4122 次 |
| 最近记录: |