in src/main/java/com/oracle/plugin/jtreg/runtime/TestListener.java [70:107]
public void finishedTest(TestResult testResult) {
Status status = testResult.getStatus();
int statusType = status.getType();
File file = testResult.getFile();
String statusReason = status.getReason();
String elapsed = getProperty(testResult, "elapsed", "0");
String presentationName = getPresentationName(testResult);
if (statusType == FAILED || statusType == ERROR) {
if (file.isFile()) {
final String output = loadText(file);
if (!output.isEmpty()) {
System.out.println("##teamcity[testStdOut name='" + presentationName + "' " +
"out='" + escapeName(output) + "']");
}
}
System.out.println("##teamcity[testFailed name='" + presentationName + "' " +
"message='" + escapeName(statusReason) + "']");
} else if (statusType == NOT_RUN) {
System.out.println("##teamcity[testIgnored name='" + presentationName + "']");
}
String duration = elapsed.split(" ")[0];
System.out.println("##teamcity[testFinished name='" + presentationName + "' " +
(!duration.equals("0") ? "duration='" + duration : "") + "'" +
(statusType != FAILED ? "outputFile='" + escapeName(file.getAbsolutePath()) + "'" : "") +
" ]");
final String repeatMode = getProperty(testResult, "repeatMode", "once");
boolean passCondition = repeatMode.equalsIgnoreCase("until_success") && statusType == PASSED;
boolean failCondition = repeatMode.equalsIgnoreCase("until_failure") && statusType == FAILED;
int maxRepeatCount = getIntProperty(testResult, "maxRepeatCount", -1);
int executionNumber = getIntProperty(testResult, "executionNumber", 0);
boolean isLastNRun = repeatMode.equalsIgnoreCase("n") && (maxRepeatCount == executionNumber);
if (passCondition || failCondition || isLastNRun) {
final String baseTestName = escapeName(testResult.getTestName());
System.out.println("##teamcity[testSuiteFinished name='" + baseTestName + "']");
}
}