1 package org.apache.maven.plugin.surefire.runorder;
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.IOException;
24
25 import org.apache.maven.surefire.api.runorder.RunEntryStatisticsMap;
26 import org.apache.maven.surefire.api.report.ReportEntry;
27
28 import static org.apache.maven.surefire.api.runorder.RunEntryStatisticsMap.fromFile;
29
30
31
32
33 public class StatisticsReporter
34 {
35 private final RunEntryStatisticsMap existing;
36
37 private final RunEntryStatisticsMap newResults;
38
39 private final File dataFile;
40
41 public StatisticsReporter( File dataFile )
42 {
43 this( dataFile, fromFile( dataFile ), new RunEntryStatisticsMap() );
44 }
45
46 protected StatisticsReporter( File dataFile, RunEntryStatisticsMap existing, RunEntryStatisticsMap newResults )
47 {
48 this.dataFile = dataFile;
49 this.existing = existing;
50 this.newResults = newResults;
51 }
52
53 public synchronized void testSetCompleted()
54 {
55 try
56 {
57 newResults.serialize( dataFile );
58 }
59 catch ( IOException e )
60 {
61 throw new RuntimeException( e );
62 }
63 }
64
65 public void testSucceeded( ReportEntry report )
66 {
67 newResults.add( existing.createNextGeneration( report ) );
68 }
69
70 public void testSkipped( ReportEntry report )
71 {
72 newResults.add( existing.createNextGeneration( report ) );
73 }
74
75 public void testError( ReportEntry report )
76 {
77 newResults.add( existing.createNextGenerationFailure( report ) );
78 }
79
80 public void testFailed( ReportEntry report )
81 {
82 newResults.add( existing.createNextGenerationFailure( report ) );
83 }
84 }