1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.plugin.surefire.extensions.junit5;
20
21 import java.io.File;
22
23 import org.apache.maven.plugin.surefire.extensions.SurefireConsoleOutputReporter;
24 import org.apache.maven.plugin.surefire.report.ConsoleOutputFileReporter;
25 import org.apache.maven.surefire.extensions.ConsoleOutputReportEventListener;
26
27
28
29
30
31
32
33
34 public class JUnit5ConsoleOutputReporter extends SurefireConsoleOutputReporter {
35
36
37
38
39
40 private boolean usePhrasedFileName;
41
42 public boolean isUsePhrasedFileName() {
43 return usePhrasedFileName;
44 }
45
46 public void setUsePhrasedFileName(boolean usePhrasedFileName) {
47 this.usePhrasedFileName = usePhrasedFileName;
48 }
49
50 @Override
51 public ConsoleOutputReportEventListener createListener(
52 File reportsDirectory, String reportNameSuffix, Integer forkNumber) {
53 return new ConsoleOutputFileReporter(
54 reportsDirectory, reportNameSuffix, isUsePhrasedFileName(), forkNumber, getEncoding());
55 }
56
57 @Override
58 public Object clone(ClassLoader target) {
59 try {
60 Object clone = super.clone(target);
61
62 Class<?> cls = clone.getClass();
63 cls.getMethod("setUsePhrasedFileName", boolean.class).invoke(clone, isUsePhrasedFileName());
64
65 return clone;
66 } catch (ReflectiveOperationException e) {
67 throw new IllegalStateException(e.getLocalizedMessage());
68 }
69 }
70
71 @Override
72 public String toString() {
73 return "JUnit5ConsoleOutputReporter{"
74 + "disable=" + isDisable()
75 + ", encoding=" + getEncoding()
76 + ", usePhrasedFileName=" + isUsePhrasedFileName()
77 + '}';
78 }
79 }