in agent/src/jetbrains/buildServer/xmlReportPlugin/parsers/ctest/CTestReportParser.java [48:98]
private TestXmlReportParser createTestXmlParser(final File file) {
return new TestXmlReportParser(new TestXmlReportParser.Callback() {
@Override
public void testFound(@NotNull final TestData testData) {
try {
final String testName = testData.getName();
final TestData.Status status = testData.getStatus();
// Currently I cannot know what to say about log. is it from StdErr or StdOut.
// Assuming as StdErr if build failed and StdOut otherwise.
final String log = testData.getLog();
if (testName == null) {
myTestReporter.warning("File " + file + " contains unnamed test");
return;
}
myTestReporter.openTest(testName);
switch (status) {
case NOT_RUN:
myTestReporter.testIgnored("");
break;
case COMPLETED:
if (log != null && !StringUtil.isEmptyOrSpaces(log)) {
myTestReporter.testStdOutput(log);
}
break;
case FAILED:
if (log != null && !StringUtil.isEmptyOrSpaces(log)) {
myTestReporter.testErrOutput(log);
}
myTestReporter.testFail(testData.getFailureMessage(), null);
break;
}
myTestReporter.closeTest(testData.getDuration());
} finally {
++myLoggedTests;
}
}
@Override
public void error(@NotNull final String message) {
myTestReporter.error(message);
}
@Override
public void unexpectedFormat(@NotNull final String msg) {
myTestReporter.error("File " + file + " doesn't match the expected format: " + msg + "\nPlease check CTest documentation for the supported schema");
}
});
}