top-level <testsuites> element has the elapsed time, and counts (errors,
failures, skipped, and total)
singular <testsuite> sub-element the same attributes as the top-level
<testsuites> plus name which is the basename of the YAML test file
each <testcase> element has the follow attributes
name: the doc string
class: the tags
file: the test ID
url: like “cwltest:conformance_tests#1”
(contains the basename of the YAML test file)
time: the elapsed time
<testcase> elements always contain the following sub-elements,
regardless of outcome
<system-out>: the output object
<system-err>: stderr (docker pull, other warnings, and errors)
<testcase> elements for failed test cases do not have a <failure> sub-element
pytest with cwltest plugin XML output
top-level <testsuites> element has no attributes
singular <testsuite> sub-element has the same attributes as the cwltest
XML version along with these additional attributes
name: default is pytest
(can be customized with the pytest INI option junit_suite_name)
timestamp="2023-01-08T11:39:07.425159"
hostname: the hostname of the machine where the tests ran
inside the <testsuite> is a <properties>..</properties> element
with two <propertyname="…"value="…"/> elements. But this
does not work with pytest-xdist.
runner: the name of the CWL runner
runner_extra_args: the value of –cwl-args`
each <testcase> element has the following attributes
classname: always the name of the YAML file (conformance_test_v1.2.cwltest.yaml)
name: the test ID
time: the elapsed time
<testcase> elements for failed test cases do have a <failure> sub-element
with a message attribute containing the cwltest.plugin.CWLItem.repr_failure()
output. This text is repeated as the content of the <failure> element.
The presensce of <system-out> and <system-err> sub-elements varies. [4]