Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNoopur Gupta2017-11-24 10:29:33 +0000
committerNoopur Gupta2017-11-24 10:29:33 +0000
commit7f92660f683f5cba60c72fea7082acbc3a9eafbf (patch)
tree335670e8d0a9944dd800c4468b7a85549f2aa175
parenta44c458467db52c855bf94f3de0e51b663ec90d7 (diff)
downloadeclipse.jdt.ui-7f92660f683f5cba60c72fea7082acbc3a9eafbf.tar.gz
eclipse.jdt.ui-7f92660f683f5cba60c72fea7082acbc3a9eafbf.tar.xz
eclipse.jdt.ui-7f92660f683f5cba60c72fea7082acbc3a9eafbf.zip
Bug 527411: [JUnit 5] JUnit5 support not properly working for
PluginUnitTests Change-Id: If7da95aed16d90f6932639aaf47bf606081f470e
-rw-r--r--org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/RemoteTestRunner.java7
-rw-r--r--org.eclipse.jdt.junit5.runtime/src/org/eclipse/jdt/internal/junit5/runner/JUnit5TestListener.java21
-rw-r--r--org.eclipse.jdt.junit5.runtime/src/org/eclipse/jdt/internal/junit5/runner/JUnit5TestLoader.java11
-rw-r--r--org.eclipse.jdt.junit5.runtime/src/org/eclipse/jdt/internal/junit5/runner/JUnit5TestReference.java14
4 files changed, 37 insertions, 16 deletions
diff --git a/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/RemoteTestRunner.java b/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/RemoteTestRunner.java
index 05085faaed..ad8bc7deb6 100644
--- a/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/RemoteTestRunner.java
+++ b/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/RemoteTestRunner.java
@@ -133,8 +133,6 @@ public class RemoteTestRunner implements MessageSender, IVisitsTestTrees {
private boolean fConsoleMode = false;
- public static final RemoteTestRunner fgTestRunServer= new RemoteTestRunner();
-
/**
* Reader thread that processes messages from the client.
*/
@@ -203,8 +201,9 @@ public class RemoteTestRunner implements MessageSender, IVisitsTestTrees {
*/
public static void main(String[] args) {
try {
- fgTestRunServer.init(args);
- fgTestRunServer.run();
+ RemoteTestRunner testRunServer= new RemoteTestRunner();
+ testRunServer.init(args);
+ testRunServer.run();
} catch (Throwable e) {
e.printStackTrace(); // don't allow System.exit(0) to swallow exceptions
} finally {
diff --git a/org.eclipse.jdt.junit5.runtime/src/org/eclipse/jdt/internal/junit5/runner/JUnit5TestListener.java b/org.eclipse.jdt.junit5.runtime/src/org/eclipse/jdt/internal/junit5/runner/JUnit5TestListener.java
index 3b27eb0cba..386a0c5a52 100644
--- a/org.eclipse.jdt.junit5.runtime/src/org/eclipse/jdt/internal/junit5/runner/JUnit5TestListener.java
+++ b/org.eclipse.jdt.junit5.runtime/src/org/eclipse/jdt/internal/junit5/runner/JUnit5TestListener.java
@@ -30,16 +30,20 @@ import org.eclipse.jdt.internal.junit.runner.IListensToTestExecutions;
import org.eclipse.jdt.internal.junit.runner.ITestIdentifier;
import org.eclipse.jdt.internal.junit.runner.MessageIds;
import org.eclipse.jdt.internal.junit.runner.RemoteTestRunner;
+import org.eclipse.jdt.internal.junit.runner.TestIdMap;
import org.eclipse.jdt.internal.junit.runner.TestReferenceFailure;
public class JUnit5TestListener implements TestExecutionListener {
private final IListensToTestExecutions fNotified;
+ private RemoteTestRunner fRemoteTestRunner;
+
private TestPlan fTestPlan;
- public JUnit5TestListener(IListensToTestExecutions notified) {
+ public JUnit5TestListener(IListensToTestExecutions notified, RemoteTestRunner remoteTestRunner) {
fNotified= notified;
+ fRemoteTestRunner= remoteTestRunner;
}
@Override
@@ -165,11 +169,22 @@ public class JUnit5TestListener implements TestExecutionListener {
hasChildren= false;
testCount= 1;
}
- String parentId= JUnit5TestReference.getParentId(testIdentifier, fTestPlan);
- RemoteTestRunner.fgTestRunServer.visitTreeEntry(dynamicTestIdentifier, hasChildren, testCount, true, parentId);
+ String parentId= getParentId(testIdentifier, fTestPlan);
+ fRemoteTestRunner.visitTreeEntry(dynamicTestIdentifier, hasChildren, testCount, true, parentId);
}
}
+ /**
+ * @param testIdentifier the test identifier whose parent id is required
+ * @param testPlan the test plan containing the test
+ * @return the parent id from {@link TestIdMap} if the parent is present, otherwise
+ * <code>"-1"</code>
+ */
+ private String getParentId(TestIdentifier testIdentifier, TestPlan testPlan) {
+ // Same as JUnit5TestReference.getParentId(TestIdentifier testIdentifier, TestPlan testPlan).
+ return testPlan.getParent(testIdentifier).map(parent -> fRemoteTestRunner.getTestId(new JUnit5Identifier(parent))).orElse("-1"); //$NON-NLS-1$
+ }
+
private ITestIdentifier getIdentifier(TestIdentifier testIdentifier, boolean ignored, boolean assumptionFailed) {
if (ignored) {
return new IgnoredTestIdentifier(testIdentifier);
diff --git a/org.eclipse.jdt.junit5.runtime/src/org/eclipse/jdt/internal/junit5/runner/JUnit5TestLoader.java b/org.eclipse.jdt.junit5.runtime/src/org/eclipse/jdt/internal/junit5/runner/JUnit5TestLoader.java
index 1ac0e05d38..4908e0c725 100644
--- a/org.eclipse.jdt.junit5.runtime/src/org/eclipse/jdt/internal/junit5/runner/JUnit5TestLoader.java
+++ b/org.eclipse.jdt.junit5.runtime/src/org/eclipse/jdt/internal/junit5/runner/JUnit5TestLoader.java
@@ -30,8 +30,11 @@ public class JUnit5TestLoader implements ITestLoader {
private Launcher fLauncher= LauncherFactory.create();
+ private RemoteTestRunner fRemoteTestRunner;
+
@Override
public ITestReference[] loadTests(Class[] testClasses, String testName, String[] failureNames, String[] packages, String[][] includeExcludeTags, String uniqueId, RemoteTestRunner listener) {
+ fRemoteTestRunner= listener;
ITestReference[] refs= new ITestReference[0];
if (uniqueId != null && !uniqueId.trim().isEmpty()) {
refs= new ITestReference[1];
@@ -62,12 +65,12 @@ public class JUnit5TestLoader implements ITestLoader {
private ITestReference createFilteredTest(Class<?> clazz, String testName, String[][] includeExcludeTags) {
LauncherDiscoveryRequest request= LauncherDiscoveryRequestBuilder.request().selectors(DiscoverySelectors.selectMethod(clazz.getName() + "#" + testName)).filters(getTagFilters(includeExcludeTags)).build(); //$NON-NLS-1$
- return new JUnit5TestReference(request, fLauncher);
+ return new JUnit5TestReference(request, fLauncher, fRemoteTestRunner);
}
private ITestReference createUnfilteredTest(Class<?> clazz, String[][] includeExcludeTags) {
LauncherDiscoveryRequest request= LauncherDiscoveryRequestBuilder.request().selectors(DiscoverySelectors.selectClass(clazz)).filters(getTagFilters(includeExcludeTags)).build();
- return new JUnit5TestReference(request, fLauncher);
+ return new JUnit5TestReference(request, fLauncher, fRemoteTestRunner);
}
private ITestReference createTest(String pkg, String[][] includeExcludeTags) {
@@ -87,12 +90,12 @@ public class JUnit5TestLoader implements ITestLoader {
.filters(getTagFilters(includeExcludeTags))
.build();
- return new JUnit5TestReference(request, fLauncher);
+ return new JUnit5TestReference(request, fLauncher, fRemoteTestRunner);
}
private ITestReference createUniqueIdTest(String uniqueId, String[][] includeExcludeTags) {
LauncherDiscoveryRequest request= LauncherDiscoveryRequestBuilder.request().selectors(DiscoverySelectors.selectUniqueId(uniqueId)).filters(getTagFilters(includeExcludeTags)).build();
- return new JUnit5TestReference(request, fLauncher);
+ return new JUnit5TestReference(request, fLauncher, fRemoteTestRunner);
}
private Filter<?>[] getTagFilters(String[][] includeExcludeTags) {
diff --git a/org.eclipse.jdt.junit5.runtime/src/org/eclipse/jdt/internal/junit5/runner/JUnit5TestReference.java b/org.eclipse.jdt.junit5.runtime/src/org/eclipse/jdt/internal/junit5/runner/JUnit5TestReference.java
index 6db11028fe..74eea8603a 100644
--- a/org.eclipse.jdt.junit5.runtime/src/org/eclipse/jdt/internal/junit5/runner/JUnit5TestReference.java
+++ b/org.eclipse.jdt.junit5.runtime/src/org/eclipse/jdt/internal/junit5/runner/JUnit5TestReference.java
@@ -33,9 +33,12 @@ public class JUnit5TestReference implements ITestReference {
private TestPlan fTestPlan;
- public JUnit5TestReference(LauncherDiscoveryRequest request, Launcher launcher) {
+ private RemoteTestRunner fRemoteTestRunner;
+
+ public JUnit5TestReference(LauncherDiscoveryRequest request, Launcher launcher, RemoteTestRunner remoteTestRunner) {
fRequest= request;
fLauncher= launcher;
+ fRemoteTestRunner= remoteTestRunner;
fTestPlan= fLauncher.discover(fRequest);
}
@@ -53,7 +56,7 @@ public class JUnit5TestReference implements ITestReference {
}
}
- void sendTree(IVisitsTestTrees notified, TestIdentifier testIdentifier) {
+ private void sendTree(IVisitsTestTrees notified, TestIdentifier testIdentifier) {
JUnit5Identifier identifier= new JUnit5Identifier(testIdentifier);
String parentId= getParentId(testIdentifier, fTestPlan);
if (testIdentifier.isTest()) {
@@ -73,13 +76,14 @@ public class JUnit5TestReference implements ITestReference {
* @return the parent id from {@link TestIdMap} if the parent is present, otherwise
* <code>"-1"</code>
*/
- static String getParentId(TestIdentifier testIdentifier, TestPlan testPlan) {
- return testPlan.getParent(testIdentifier).map(parent -> RemoteTestRunner.fgTestRunServer.getTestId(new JUnit5Identifier(parent))).orElse("-1"); //$NON-NLS-1$
+ private String getParentId(TestIdentifier testIdentifier, TestPlan testPlan) {
+ // Same as JUnit5TestListener.getParentId(TestIdentifier testIdentifier, TestPlan testPlan)
+ return testPlan.getParent(testIdentifier).map(parent -> fRemoteTestRunner.getTestId(new JUnit5Identifier(parent))).orElse("-1"); //$NON-NLS-1$
}
@Override
public void run(TestExecution execution) {
- fLauncher.execute(fRequest, new JUnit5TestListener(execution.getListener()));
+ fLauncher.execute(fRequest, new JUnit5TestListener(execution.getListener(), fRemoteTestRunner));
}
@Override

Back to the top