Add test attributes to junit XML

This commit is contained in:
joesantos418 2023-04-13 10:55:04 -03:00 committed by hurl-bot
parent ba3556232a
commit f29899c033
No known key found for this signature in database
GPG Key ID: 1283A2B4A0DCAF8D
3 changed files with 25 additions and 2 deletions

View File

@ -1 +1 @@
<?xml version="1.0" encoding="UTF-8"?><testsuites><testsuite><testcase id="tests_ok/test.1.hurl" name="tests_ok/test.1.hurl" time="~~~" /><testcase id="tests_ok/test.2.hurl" name="tests_ok/test.2.hurl" time="~~~" /></testsuite><testsuite><testcase id="tests_ok/test.3.hurl" name="tests_ok/test.3.hurl" time="~~~" /></testsuite></testsuites> <?xml version="1.0" encoding="UTF-8"?><testsuites><testsuite tests="2" errors="0" failures="0"><testcase id="tests_ok/test.1.hurl" name="tests_ok/test.1.hurl" time="~~~" /><testcase id="tests_ok/test.2.hurl" name="tests_ok/test.2.hurl" time="~~~" /></testsuite><testsuite tests="1" errors="0" failures="0"><testcase id="tests_ok/test.3.hurl" name="tests_ok/test.3.hurl" time="~~~" /></testsuite></testsuites>

View File

@ -112,6 +112,21 @@ pub fn write_report(filename: &str, testcases: &[Testcase]) -> Result<(), Error>
} }
fn create_testsuite(testcases: &[Testcase]) -> XMLNode { fn create_testsuite(testcases: &[Testcase]) -> XMLNode {
let mut attrs = indexmap::map::IndexMap::new();
let mut tests = 0;
let mut errors = 0;
let mut failures = 0;
for cases in testcases.iter() {
tests += 1;
errors += cases.get_error_count();
failures += cases.get_fail_count();
}
attrs.insert("tests".to_string(), tests.to_string());
attrs.insert("errors".to_string(), errors.to_string());
attrs.insert("failures".to_string(), failures.to_string());
let children = testcases let children = testcases
.iter() .iter()
.map(|t| XMLNode::Element(t.to_xml())) .map(|t| XMLNode::Element(t.to_xml()))
@ -121,7 +136,7 @@ fn create_testsuite(testcases: &[Testcase]) -> XMLNode {
prefix: None, prefix: None,
namespace: None, namespace: None,
namespaces: None, namespaces: None,
attributes: indexmap::map::IndexMap::new(), attributes: attrs,
children, children,
}; };
XMLNode::Element(element) XMLNode::Element(element)

View File

@ -96,6 +96,14 @@ impl Testcase {
children, children,
} }
} }
pub fn get_error_count(&self) -> usize {
self.errors.len()
}
pub fn get_fail_count(&self) -> usize {
self.failures.len()
}
} }
#[cfg(test)] #[cfg(test)]