test.gradle 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. test {
  2. def outputReporter = new OutputReporter()
  3. addTestListener(outputReporter)
  4. addTestOutputListener(outputReporter)
  5. }
  6. class OutputReporter implements TestListener, TestOutputListener {
  7. private StringBuilder stdout = new StringBuilder();
  8. private StringBuilder stderr = new StringBuilder();
  9. @Override
  10. void beforeSuite(TestDescriptor suite) {
  11. }
  12. @Override
  13. void afterSuite(TestDescriptor suite, TestResult result) {
  14. }
  15. @Override
  16. void beforeTest(TestDescriptor testDescriptor) {
  17. if (!testDescriptor.isComposite()) {
  18. stdout.setLength(0);
  19. stderr.setLength(0);
  20. }
  21. }
  22. @Override
  23. void afterTest(TestDescriptor testDescriptor, TestResult result) {
  24. if (!testDescriptor.isComposite() && result.getResultType() == TestResult.ResultType.FAILURE) {
  25. if (stdout.length() != 0) {
  26. println ""
  27. println "--- STDOUT ---"
  28. print stdout
  29. println "--- STDOUT ---"
  30. }
  31. if (stderr.length() != 0) {
  32. println ""
  33. println "--- STDERR ---"
  34. println stderr
  35. println "--- STDERR ---"
  36. }
  37. }
  38. }
  39. @Override
  40. void onOutput(TestDescriptor testDescriptor, TestOutputEvent outputEvent) {
  41. if (!testDescriptor.isComposite()) {
  42. def buffer = (outputEvent.getDestination() == TestOutputEvent.Destination.StdOut) ? stdout : stderr;
  43. buffer.append(outputEvent.getMessage());
  44. if (outputEvent.getMessage().contains("LEAK:")) {
  45. println stdout
  46. println stderr
  47. throw new RuntimeException("Netty ResourceLeakDetector");
  48. }
  49. }
  50. }
  51. }