1
2
3
4
5
6 package mockit.coverage.testRedundancy;
7
8 import edu.umd.cs.findbugs.annotations.NonNull;
9
10 import java.lang.reflect.Method;
11
12 import org.junit.runner.Description;
13 import org.junit.runner.notification.RunListener;
14
15 public final class JUnitListener extends RunListener {
16 @NonNull
17 private final TestCoverage testCoverage;
18
19 public JUnitListener(@NonNull TestCoverage testCoverage) {
20 this.testCoverage = testCoverage;
21 }
22
23 @Override
24 public void testStarted(@NonNull Description description) {
25 if (description.isTest()) {
26 Class<?> testClass = description.getTestClass();
27 String testMethodName = description.getMethodName();
28
29 for (Method testMethod : testClass.getDeclaredMethods()) {
30 if (testMethod.getName().equals(testMethodName)) {
31 testCoverage.setCurrentTestMethod(testMethod);
32 return;
33 }
34 }
35 }
36 }
37
38 @Override
39 public void testFinished(@NonNull Description description) {
40 if (description.isTest()) {
41 testCoverage.setCurrentTestMethod(null);
42 }
43 }
44 }