mirror of
https://github.com/SchildiChat/SchildiChat-android.git
synced 2025-03-19 04:38:44 +03:00
Add a python script to cleanly display outputs in the github logs
This commit is contained in:
parent
b226ab5e4b
commit
779b5db363
1 changed files with 34 additions and 0 deletions
34
tools/ci/render_test_output.py
Executable file
34
tools/ci/render_test_output.py
Executable file
|
@ -0,0 +1,34 @@
|
|||
#!/usr/bin/env python3
|
||||
#
|
||||
# Renders a list of xml files taken as arguments into GHA-styled messages in groups.
|
||||
# Explicitly aims not to have any dependencies, to reduce installation load.
|
||||
# Should just be able to run in the context of your standard github runner.
|
||||
|
||||
import sys
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
xmlfiles= sys.argv[1:]
|
||||
|
||||
for xmlfile in xmlfiles:
|
||||
tree = ET.parse(xmlfile)
|
||||
|
||||
root = tree.getroot()
|
||||
name = root.attrib['name']
|
||||
name = root.attrib['time']
|
||||
success = int(root.attrib['tests']) - int(root.attrib['failures']) - int(root.attrib['errors'])
|
||||
total = int(root.attrib['tests']) - int(root.attrib['skipped'])
|
||||
print(f"::group::{name} {success}/{total} in {time}")
|
||||
|
||||
for testcase in root:
|
||||
if testcase.tag != "testcase":
|
||||
continue
|
||||
testname = testcase.attrib['classname']
|
||||
message = testcase.attrib['name']
|
||||
time = testcase.attrib['time']
|
||||
child = testcase.find("failure")
|
||||
if child is None:
|
||||
print(f"{message} in {time}s")
|
||||
else:
|
||||
print(f"::error file={testname}::{message} in {time}s")
|
||||
print(child.text)
|
||||
print("::endgroup::")
|
Loading…
Add table
Reference in a new issue