blob: 59af592714aabd2e928f625fbeeabfb179b376aa (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
package mill.testng;
import sbt.testing.Event;
import org.testng.ITestResult;
import org.testng.TestListenerAdapter;
import sbt.testing.EventHandler;
import sbt.testing.Logger;
import java.util.HashMap;
public class EventRecorder extends TestListenerAdapter {
private final HashMap<String, java.util.List<Event>> basket = new HashMap<>();
String initKey(ITestResult result){
String key = ResultEvent.classNameOf(result);
if (!basket.containsKey(key)) basket.put(key, new java.util.ArrayList<Event>());
return key;
}
public void onTestFailure(ITestResult result){
String key = initKey(result);
basket.get(key).add(ResultEvent.failure(result));
}
public void onTestSkipped(ITestResult result){
String key = initKey(result);
basket.get(key).add(ResultEvent.skipped(result));
}
public void onTestSuccess(ITestResult result){
String key = initKey(result);
basket.get(key).add(ResultEvent.success(result));
}
void replayTo(EventHandler sbt, String className, Logger[] loggers){
synchronized (basket){
for(Event e: basket.remove(className)){
sbt.handle(e);
}
}
}
}
|