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.BufferedWriter;
23 import java.io.File;
24 import java.io.FileWriter;
25 import java.io.IOException;
26 import java.io.PrintWriter;
27 import org.apache.maven.surefire.report.ReportEntry;
28 import org.apache.maven.surefire.report.ReporterException;
29 import org.apache.maven.surefire.util.NestedRuntimeException;
30
31
32
33
34
35
36
37
38
39 public class ConsoleOutputFileReporter
40 implements TestcycleConsoleOutputReceiver
41 {
42 private final File reportsDirectory;
43
44 private final String reportNameSuffix;
45
46 private PrintWriter printWriter = null;
47
48 private String reportEntryName;
49
50 public ConsoleOutputFileReporter( File reportsDirectory, String reportNameSuffix )
51 {
52 this.reportsDirectory = reportsDirectory;
53 this.reportNameSuffix = reportNameSuffix;
54 }
55
56 public void testSetStarting( ReportEntry reportEntry )
57 {
58 close();
59 this.reportEntryName = reportEntry.getName();
60 }
61
62 public void testSetCompleted( ReportEntry report )
63 throws ReporterException
64 {
65 }
66
67 public void close()
68 {
69 if ( printWriter != null )
70 {
71 printWriter.close();
72 printWriter = null;
73 }
74 }
75
76 public void writeTestOutput( byte[] buf, int off, int len, boolean stdout )
77 {
78 try
79 {
80 if ( printWriter == null )
81 {
82 if ( !reportsDirectory.exists() )
83 {
84
85 reportsDirectory.mkdirs();
86 }
87 File file =
88 FileReporter.getReportFile( reportsDirectory, reportEntryName, reportNameSuffix, "-output.txt" );
89 printWriter = new PrintWriter( new BufferedWriter( new FileWriter( file ) ) );
90 }
91 printWriter.write( new String( buf, off, len ) );
92 }
93 catch ( IOException e )
94 {
95 throw new NestedRuntimeException( e );
96 }
97 }
98 }