void writeXmlError(XmlWriter& writer, const Error& error) { if (error.type() == Error::UnhandledException) writer.beginElement("error"); else writer.beginElement("failure"); writer.attribute("message", error.message()); writer.attribute("type", Error::levelName(error.type())); writer.characterData(error.file()); writer.characterData("["); writer.characterData((int)error.lineNo()); writer.characterData("]"); auto& context = error.context(); for (auto c = begin(context); c != end(context); ++c) { writer.characterData("\n"); writer.characterData(c->text()); } writer.endElement(); }
void writeXmlTestCase(XmlWriter& writer, const Test& test) { writer.beginElement("testcase"); writer.attribute("name", test.name()); if (test.assertions() != 0) { writer.attribute("assertions", (int64_t)test.assertions()); writer.attribute("name", "NONE"); writer.attribute("time", test.elapsedTime()); auto& errors = test.errors(); for (auto it = begin(errors); it != end(errors); ++it) writeXmlError(writer, *it); } writer.endElement(); }