我使用jenkins作为CI工具。我使用restful api远程建立工作,但我也不知道如何远程获取测试结果。 如果有人知道解决方案,我会感激不尽
答案 0 :(得分:4)
使用XML或Json API。在Jenkins的大多数页面上,您可以将pip freeze
添加到URL并获取xml,json和类似格式的数据。因此,对于工作,您可以转到$ pip freeze | grep cv
并获取有关工作,构建等的信息。对于构建,您可以转到/api/
,您将获得构建的摘要。请注意,您可以使用<Jenkins URL>/job/<Job Name>/api/xml
来获取最新的成功,稳定,失败,完整的构建,如下所示; <Jenkins URL>/job/<Job Name>/<build number>/api/xml
。
此外,如果您使用任何将测试结果发布到构建的插件,那么对于给定的作业,您可以转到latestXXXBuild
,然后您将获得包含结果的xml报告。
还有很多内容,您可以使用<Jenkins URL>/job/<Job Name>/lastCompletedBuild/api/xml
参数和<Jenkins URL>/job/<Job Name>/lastCompletedBuild/testReport/api/xml
参数控制导出的内容。有关摘要,请转至tree
答案 1 :(得分:0)
好吧,如果您正在使用jenkins共享库或决定允许安全例外(一种不太好的方法),则可以通过作业访问它们并将其发送到任意位置-push vs pull
def getCurrentBuildFailedTests() {
def failedTests = []
def build = currentBuild.build()
def action = build.getActions(hudson.tasks.junit.TestResultAction.class)
if (action) {
def failures = build.getAction(hudson.tasks.junit.TestResultAction.class).getFailedTests()
println "${failures.size()} Test Results Found"
for (def failure in failures) {
failedTests.add(['name': failure.name, 'url': failure.url, 'details': failure.errorDetails])
}
}
return failedTests
}