Доступ к атрибуту узла Jenkins возвращает логическое значение вместо значения - PullRequest
2 голосов
/ 05 июня 2019

Я пытаюсь проанализировать XML в конвейере Jenkins, используя XmlSlurper.

<?xml version="1.0" encoding="UTF-8"?>
<testsuites>
    <testsuite>
        <properties>
            <property name="outcome" value="Failed"/>
            ...
            <property name="orgWideCoverage" value="73%"/>
        </properties>
        ...

Я пытался использовать прямую и картографическую нотацию, и оба возвращали одинаковые результаты.

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)

Я ожидаю, что первое возвращаемое значение будет Failure и получу true.

Для второго случая должно быть 73% и false

...