1 package org.apache.maven.plugin.surefire.report;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.File;
23 import java.io.FileOutputStream;
24 import java.io.IOException;
25
26 import org.apache.maven.surefire.report.ReportEntry;
27
28 import static org.apache.maven.plugin.surefire.report.FileReporter.getReportFile;
29
30
31
32
33
34
35
36
37
38 public class ConsoleOutputFileReporter
39 implements TestcycleConsoleOutputReceiver
40 {
41 private final File reportsDirectory;
42
43 private final String reportNameSuffix;
44
45 private String reportEntryName;
46
47 private FileOutputStream fileOutputStream;
48
49 public ConsoleOutputFileReporter( File reportsDirectory, String reportNameSuffix )
50 {
51 this.reportsDirectory = reportsDirectory;
52 this.reportNameSuffix = reportNameSuffix;
53 }
54
55 public void testSetStarting( ReportEntry reportEntry )
56 {
57 close();
58 reportEntryName = reportEntry.getName();
59 }
60
61 public void testSetCompleted( ReportEntry report )
62 {
63 }
64
65 @SuppressWarnings( "checkstyle:emptyblock" )
66 public void close()
67 {
68 if ( fileOutputStream != null )
69 {
70 try
71 {
72 fileOutputStream.flush();
73 fileOutputStream.close();
74 }
75 catch ( IOException e )
76 {
77 }
78 fileOutputStream = null;
79 }
80 }
81
82 public void writeTestOutput( byte[] buf, int off, int len, boolean stdout )
83 {
84 try
85 {
86 if ( fileOutputStream == null )
87 {
88 if ( !reportsDirectory.exists() )
89 {
90
91 reportsDirectory.mkdirs();
92 }
93 File file = getReportFile( reportsDirectory, reportEntryName, reportNameSuffix, "-output.txt" );
94 fileOutputStream = new FileOutputStream( file );
95 }
96 fileOutputStream.write( buf, off, len );
97 }
98 catch ( IOException e )
99 {
100 throw new RuntimeException( e );
101 }
102 }
103 }