junit¶
Build JUnit XML reports from build events.
JUnit XML schema (consumed by GitLab CI, Jenkins, etc.):
<testsuites>
<testsuite name="..." tests="N" failures="M" errors="K" time="T">
<testcase name="..." classname="..." time="T">
<failure message="..." type="...">details</failure>
<error message="...">details</error>
<system-out>log lines</system-out>
<system-err>error lines</system-err>
</testcase>
</testsuite>
</testsuites>
_make_text_elem(tag, lines)
¶
Create a text element with joined lines content.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
tag
|
str
|
XML tag name (e.g. |
required |
lines
|
list[str]
|
Lines of text to join with newlines. |
required |
Returns:
| Type | Description |
|---|---|
Element
|
An xml.etree.ElementTree.Element with the joined text. |
Source code in src/junix/junit.py
report_to_xml(builds, suite_name='nix-build', error_messages=None)
¶
Convert build events into a JUnit XML string.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
builds
|
list[BuildEvent]
|
Collected build events from NixEventHandler. |
required |
suite_name
|
str
|
Value for the |
'nix-build'
|
error_messages
|
list[str] | None
|
Additional error messages (from the Nix logger)
to include in the suite-level |
None
|
Returns:
| Type | Description |
|---|---|
str
|
A JUnit XML string. |