Bug 521464: [JUnit 5] Re-running a test method shows its parameter types
in non-readable form
Change-Id: I848ed6fabb589f0cceaa199c4a248078167fcb95
diff --git a/org.eclipse.jdt.junit/src/org/eclipse/jdt/internal/junit/ui/RerunAction.java b/org.eclipse.jdt.junit/src/org/eclipse/jdt/internal/junit/ui/RerunAction.java
index e048229..a50fb08 100644
--- a/org.eclipse.jdt.junit/src/org/eclipse/jdt/internal/junit/ui/RerunAction.java
+++ b/org.eclipse.jdt.junit/src/org/eclipse/jdt/internal/junit/ui/RerunAction.java
@@ -21,6 +21,7 @@
private String fTestId;
private String fClassName;
private String fTestName;
+ private String fTestDisplayName;
private TestRunnerViewPart fTestRunner;
private String fUniqueId;
private String fLaunchMode;
@@ -32,23 +33,25 @@
* @param testId the test id
* @param className the class name containing the test
* @param testName the method to run or <code>null</code>
+ * @param testDisplayName the display name of the test to re-run or <code>null</code>
* @param uniqueId the unique ID of the test to re-run or <code>null</code>
* @param launchMode the launch mode
*/
public RerunAction(String actionName, TestRunnerViewPart runner, String testId, String className, String testName,
- String uniqueId, String launchMode) {
+ String testDisplayName, String uniqueId, String launchMode) {
super(actionName);
PlatformUI.getWorkbench().getHelpSystem().setHelp(this, IJUnitHelpContextIds.RERUN_ACTION);
fTestRunner= runner;
fTestId= testId;
fClassName= className;
fTestName= testName;
+ fTestDisplayName= testDisplayName;
fUniqueId= uniqueId;
fLaunchMode= launchMode;
}
@Override
public void run() {
- fTestRunner.rerunTest(fTestId, fClassName, fTestName, fUniqueId, fLaunchMode);
+ fTestRunner.rerunTest(fTestId, fClassName, fTestName, fTestDisplayName, fUniqueId, fLaunchMode);
}
}
diff --git a/org.eclipse.jdt.junit/src/org/eclipse/jdt/internal/junit/ui/TestRunnerViewPart.java b/org.eclipse.jdt.junit/src/org/eclipse/jdt/internal/junit/ui/TestRunnerViewPart.java
index 3c6ca16..c2fd084 100644
--- a/org.eclipse.jdt.junit/src/org/eclipse/jdt/internal/junit/ui/TestRunnerViewPart.java
+++ b/org.eclipse.jdt.junit/src/org/eclipse/jdt/internal/junit/ui/TestRunnerViewPart.java
@@ -2157,7 +2157,7 @@
getDisplay().asyncExec(r);
}
- public void rerunTest(String testId, String className, String testName, String uniqueId, String launchMode) {
+ public void rerunTest(String testId, String className, String testName, String testDisplayName, String uniqueId, String launchMode) {
if (lastLaunchIsKeptAlive()) {
fTestRunSession.rerunTest(testId, className, testName);
TestCaseElement testCaseElement= (TestCaseElement) fTestRunSession.getTestElement(testId);
@@ -2174,9 +2174,14 @@
ILaunchConfiguration launchConfiguration= launch.getLaunchConfiguration();
if (launchConfiguration != null) {
try {
- String name= className;
- if (testName != null)
- name+= "."+testName; //$NON-NLS-1$
+ String name;
+ if (testDisplayName != null) {
+ name= testDisplayName;
+ } else {
+ name= className;
+ if (testName != null)
+ name+= "."+testName; //$NON-NLS-1$
+ }
String configName= Messages.format(JUnitMessages.TestRunnerViewPart_configName, name);
ILaunchConfigurationWorkingCopy tmp = launchConfiguration.copy(configName);
// fix for bug: 64838 junit view run single test does not use correct class [JUnit]
diff --git a/org.eclipse.jdt.junit/src/org/eclipse/jdt/internal/junit/ui/TestViewer.java b/org.eclipse.jdt.junit/src/org/eclipse/jdt/internal/junit/ui/TestViewer.java
index e2c2916..fbc4bad 100644
--- a/org.eclipse.jdt.junit/src/org/eclipse/jdt/internal/junit/ui/TestViewer.java
+++ b/org.eclipse.jdt.junit/src/org/eclipse/jdt/internal/junit/ui/TestViewer.java
@@ -304,10 +304,10 @@
testMethodName= testMethodName + "(" + paramTypesStr + ")"; //$NON-NLS-1$ //$NON-NLS-2$
}
if (fTestRunnerPart.lastLaunchIsKeptAlive()) {
- manager.add(new RerunAction(JUnitMessages.RerunAction_label_rerun, fTestRunnerPart, testCaseElement.getId(), className, testMethodName, testCaseElement.getUniqueId(), ILaunchManager.RUN_MODE));
+ manager.add(new RerunAction(JUnitMessages.RerunAction_label_rerun, fTestRunnerPart, testCaseElement.getId(), className, testMethodName, testCaseElement.getDisplayName(), testCaseElement.getUniqueId(), ILaunchManager.RUN_MODE));
} else {
- manager.add(new RerunAction(JUnitMessages.RerunAction_label_run, fTestRunnerPart, testCaseElement.getId(), className, testMethodName, testCaseElement.getUniqueId(), ILaunchManager.RUN_MODE));
- manager.add(new RerunAction(JUnitMessages.RerunAction_label_debug, fTestRunnerPart, testCaseElement.getId(), className, testMethodName, testCaseElement.getUniqueId(), ILaunchManager.DEBUG_MODE));
+ manager.add(new RerunAction(JUnitMessages.RerunAction_label_run, fTestRunnerPart, testCaseElement.getId(), className, testMethodName, testCaseElement.getDisplayName(), testCaseElement.getUniqueId(), ILaunchManager.RUN_MODE));
+ manager.add(new RerunAction(JUnitMessages.RerunAction_label_debug, fTestRunnerPart, testCaseElement.getId(), className, testMethodName, testCaseElement.getDisplayName(), testCaseElement.getUniqueId(), ILaunchManager.DEBUG_MODE));
}
}
@@ -345,8 +345,8 @@
}
}
if (qualifiedName != null) {
- manager.add(new RerunAction(JUnitMessages.RerunAction_label_run, fTestRunnerPart, testSuiteElement.getId(), qualifiedName, testMethodName, testSuiteElement.getUniqueId(), ILaunchManager.RUN_MODE));
- manager.add(new RerunAction(JUnitMessages.RerunAction_label_debug, fTestRunnerPart, testSuiteElement.getId(), qualifiedName, testMethodName, testSuiteElement.getUniqueId(), ILaunchManager.DEBUG_MODE));
+ manager.add(new RerunAction(JUnitMessages.RerunAction_label_run, fTestRunnerPart, testSuiteElement.getId(), qualifiedName, testMethodName, testSuiteElement.getDisplayName(), testSuiteElement.getUniqueId(), ILaunchManager.RUN_MODE));
+ manager.add(new RerunAction(JUnitMessages.RerunAction_label_debug, fTestRunnerPart, testSuiteElement.getId(), qualifiedName, testMethodName, testSuiteElement.getDisplayName(), testSuiteElement.getUniqueId(), ILaunchManager.DEBUG_MODE));
}
}