From 05d29ccce1898ed89c0b650c77242c2fa2805128 Mon Sep 17 00:00:00 2001 From: Sophia Pearson Date: Fri, 20 May 2022 00:45:25 +0200 Subject: texty: initial commit --- addons/gut/junit_xml_export.gd | 94 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 addons/gut/junit_xml_export.gd (limited to 'addons/gut/junit_xml_export.gd') diff --git a/addons/gut/junit_xml_export.gd b/addons/gut/junit_xml_export.gd new file mode 100644 index 0000000..116cfdf --- /dev/null +++ b/addons/gut/junit_xml_export.gd @@ -0,0 +1,94 @@ +# ------------------------------------------------------------------------------ +# Creates an export of a test run in the JUnit XML format. +# ------------------------------------------------------------------------------ +var _utils = load('res://addons/gut/utils.gd').get_instance() + +var _exporter = _utils.ResultExporter.new() + +func indent(s, ind): + var to_return = ind + s + to_return = to_return.replace("\n", "\n" + ind) + return to_return + + +func add_attr(name, value): + return str(name, '="', value, '" ') + +func _export_test_result(test): + var to_return = '' + + # Right now the pending and failure messages won't fit in the message + # attribute because they can span multiple lines and need to be escaped. + if(test.status == 'pending'): + var skip_tag = str("", test.pending[0], "") + to_return += skip_tag + elif(test.status == 'fail'): + var fail_tag = str("", test.failing[0], "") + to_return += fail_tag + + return to_return + + +func _export_tests(script_result, classname): + var to_return = "" + + for key in script_result.keys(): + var test = script_result[key] + var assert_count = test.passing.size() + test.failing.size() + to_return += "