junit 5: prepare engines to avoid reloading on test repeated (IDEA-162566)

This commit is contained in:
Anna.Kozlova
2016-10-18 12:52:43 +02:00
parent deb0320103
commit 34df585c30
2 changed files with 14 additions and 7 deletions
@@ -30,24 +30,26 @@ public class JUnit5IdeaTestRunner implements IdeaTestRunner {
private TestPlan myTestPlan;
private JUnit5TestExecutionListener myListener;
private ArrayList myListeners;
private Launcher myLauncher;
@Override
public void createListeners(ArrayList listeners) {
myListeners = listeners;
myListener = new JUnit5TestExecutionListener();
myLauncher = LauncherFactory.create();
myLauncher.registerTestExecutionListeners(myListener);
}
@Override
public int startRunnerWithArgs(String[] args, String name, int count, boolean sendTree) {
try {
Launcher launcher = LauncherFactory.create();
launcher.registerTestExecutionListeners(myListener);
myListener.initialize();
final String[] packageNameRef = new String[1];
final LauncherDiscoveryRequest discoveryRequest = JUnit5TestRunnerUtil.buildRequest(args, packageNameRef);
myTestPlan = launcher.discover(discoveryRequest);
myTestPlan = myLauncher.discover(discoveryRequest);
for (Object listenerClassName : myListeners) {
final IDEAJUnitListener junitListener = (IDEAJUnitListener)Class.forName((String)listenerClassName).newInstance();
launcher.registerTestExecutionListeners(new MyCustomListenerWrapper(junitListener));
myLauncher.registerTestExecutionListeners(new MyCustomListenerWrapper(junitListener));
}
if (sendTree) {
do {
@@ -56,7 +58,7 @@ public class JUnit5IdeaTestRunner implements IdeaTestRunner {
while (--count > 0);
}
launcher.execute(discoveryRequest);
myLauncher.execute(discoveryRequest);
return myListener.wasSuccessful() ? 0 : -1;
}
@@ -41,10 +41,10 @@ public class JUnit5TestExecutionListener implements TestExecutionListener {
private final PrintStream myPrintStream;
private TestPlan myTestPlan;
private long myCurrentTestStart;
private int myFinishCount = 0;
private int myFinishCount;
private String myRootName;
private Set<TestIdentifier> myRoots;
private boolean mySuccessful = true;
private boolean mySuccessful;
public JUnit5TestExecutionListener() {
this(System.out);
@@ -59,6 +59,11 @@ public class JUnit5TestExecutionListener implements TestExecutionListener {
return mySuccessful;
}
public void initialize() {
mySuccessful = true;
myFinishCount = 0;
}
@Override
public void reportingEntryPublished(TestIdentifier testIdentifier, ReportEntry entry) {
StringBuilder builder = new StringBuilder();