Files
IM-server-new/gradle/test.gradle
T

63 lines
1.7 KiB
Groovy
Raw Normal View History

2017-01-17 15:12:15 +01:00
test {
def outputReporter = new OutputReporter()
addTestListener(outputReporter)
addTestOutputListener(outputReporter)
}
class OutputReporter implements TestListener, TestOutputListener {
private StringBuilder stdout = new StringBuilder();
private StringBuilder stderr = new StringBuilder();
@Override
void beforeSuite(TestDescriptor suite) {
}
@Override
void afterSuite(TestDescriptor suite, TestResult result) {
}
@Override
void beforeTest(TestDescriptor testDescriptor) {
if (!testDescriptor.isComposite()) {
stdout.setLength(0);
stderr.setLength(0);
}
}
@Override
void afterTest(TestDescriptor testDescriptor, TestResult result) {
if (!testDescriptor.isComposite() && result.getResultType() == TestResult.ResultType.FAILURE) {
if (stdout.length() != 0) {
println ""
println "--- STDOUT ---"
print stdout
println "--- STDOUT ---"
}
if (stderr.length() != 0) {
println ""
println "--- STDERR ---"
println stderr
println "--- STDERR ---"
}
}
}
@Override
void onOutput(TestDescriptor testDescriptor, TestOutputEvent outputEvent) {
if (!testDescriptor.isComposite()) {
def buffer = (outputEvent.getDestination() == TestOutputEvent.Destination.StdOut) ? stdout : stderr;
buffer.append(outputEvent.getMessage());
if (outputEvent.getMessage().contains("LEAK:")) {
println stdout
println stderr
throw new RuntimeException("Netty ResourceLeakDetector");
}
}
}
}