I'm trying to parse XML in Jenkins pipeline using XmlSlurper.
<?xml version="1.0" encoding="UTF-8"?>
<testsuites>
<testsuite>
<properties>
<property name="outcome" value="Failed"/>
...
<property name="orgWideCoverage" value="73%"/>
</properties>
...
I've tried using direct and map notation and both returns same results.
def testsuites = new XmlSlurper().parseText(testResult)
def properties = testsuites.'**'.find { node ->
node.name() == 'properties'
}
String outcome = properties.'*'.find { node ->
node.name() == 'property' && node['@name'] == 'outcome'
}['@value']
printf("Outcome: %s ", outcome)
String orgWideCoverage = properties.'*'.find { node ->
node.name() == 'property' && node['@name'] == 'orgWideCoverage'
}['@value']
printf("Coverage: %s ", orgWideCoverage)
I expect the first case returned value to be Failure
and get true
instead.
For the second case should be 73%
and is false