499132: show test results can filter the results to failures only
Change-Id: Icde09a46b387e99b48c92ba040cbb5eb059aea99
Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=499132
Signed-off-by: Jaxsun McCarthy Huggan <jaxsun.mccarthy@tasktop.com>
diff --git a/org.eclipse.mylyn.builds.ui/src/org/eclipse/mylyn/internal/builds/ui/util/TestResultManager.java b/org.eclipse.mylyn.builds.ui/src/org/eclipse/mylyn/internal/builds/ui/util/TestResultManager.java
index 00499f4..9ffa810 100644
--- a/org.eclipse.mylyn.builds.ui/src/org/eclipse/mylyn/internal/builds/ui/util/TestResultManager.java
+++ b/org.eclipse.mylyn.builds.ui/src/org/eclipse/mylyn/internal/builds/ui/util/TestResultManager.java
@@ -47,6 +47,7 @@
import org.eclipse.mylyn.commons.workbench.WorkbenchUtil;
import org.eclipse.mylyn.internal.builds.ui.BuildsUiInternal;
import org.eclipse.mylyn.internal.builds.ui.BuildsUiPlugin;
+import org.eclipse.ui.IViewPart;
import org.eclipse.ui.statushandlers.StatusManager;
import org.xml.sax.SAXException;
@@ -91,16 +92,16 @@
// Eclipse 3.6 or later
Class<?> clazz;
try {
- clazz = Class.forName("org.eclipse.jdt.internal.junit.JUnitCorePlugin");
+ clazz = Class.forName("org.eclipse.jdt.internal.junit.JUnitCorePlugin"); //$NON-NLS-1$
} catch (ClassNotFoundException e) {
// Eclipse 3.5 and earlier
- clazz = Class.forName("org.eclipse.jdt.internal.junit.ui.JUnitPlugin");
+ clazz = Class.forName("org.eclipse.jdt.internal.junit.ui.JUnitPlugin"); //$NON-NLS-1$
}
- Method method = clazz.getDeclaredMethod("getModel");
+ Method method = clazz.getDeclaredMethod("getModel"); //$NON-NLS-1$
junitModel = (JUnitModel) method.invoke(null);
} catch (Exception e) {
- NoClassDefFoundError error = new NoClassDefFoundError("Unable to locate container for JUnitModel");
+ NoClassDefFoundError error = new NoClassDefFoundError("Unable to locate container for JUnitModel"); //$NON-NLS-1$
error.initCause(e);
throw error;
}
@@ -127,18 +128,20 @@
}
});
if (result.get() == null) {
- StatusManager.getManager().handle(
- new Status(IStatus.ERROR, BuildsUiPlugin.ID_PLUGIN, "Failed to locate test in workspace."),
- StatusManager.SHOW | StatusManager.BLOCK);
+ StatusManager.getManager()
+ .handle(new Status(IStatus.ERROR, BuildsUiPlugin.ID_PLUGIN,
+ "Failed to locate test in workspace."), //$NON-NLS-1$
+ StatusManager.SHOW | StatusManager.BLOCK);
return;
}
JavaUI.openInEditor(result.get(), true, true);
} catch (OperationCanceledException e) {
return;
} catch (Exception e) {
- StatusManager.getManager().handle(
- new Status(IStatus.ERROR, BuildsUiPlugin.ID_PLUGIN, "Failed to locate test in workspace.", e),
- StatusManager.SHOW | StatusManager.BLOCK | StatusManager.LOG);
+ StatusManager.getManager()
+ .handle(new Status(IStatus.ERROR, BuildsUiPlugin.ID_PLUGIN,
+ "Failed to locate test in workspace.", e), //$NON-NLS-1$
+ StatusManager.SHOW | StatusManager.BLOCK | StatusManager.LOG);
return;
}
}
@@ -155,24 +158,39 @@
generator.write(handler);
} catch (SAXException e) {
throw new CoreException(new Status(IStatus.ERROR, BuildsUiPlugin.ID_PLUGIN,
- "Unexpected parsing error while preparing test results", e));
+ "Unexpected parsing error while preparing test results", e)); //$NON-NLS-1$
}
}
});
} catch (OperationCanceledException e) {
return;
} catch (CoreException e) {
- StatusManager.getManager().handle(
- new Status(IStatus.ERROR, BuildsUiPlugin.ID_PLUGIN,
- "Unexpected error while processing test results", e),
- StatusManager.SHOW | StatusManager.LOG);
+ StatusManager.getManager()
+ .handle(new Status(IStatus.ERROR, BuildsUiPlugin.ID_PLUGIN,
+ "Unexpected error while processing test results", e), //$NON-NLS-1$
+ StatusManager.SHOW | StatusManager.LOG);
return;
}
// show results in view
- WorkbenchUtil.showViewInActiveWindow(TestRunnerViewPart.NAME);
+ IViewPart part = WorkbenchUtil.showViewInActiveWindow(TestRunnerViewPart.NAME);
+ showFailuresOnly(part);
getJUnitModel().addTestRunSession(testRunSession);
}
+
+ static void showFailuresOnly(IViewPart part) {
+ try {
+ boolean showFailuresOnly = BuildsUiPlugin.getDefault()
+ .getPreferenceStore()
+ .getBoolean(BuildsUiInternal.PREF_SHOW_TEST_FAILURES_ONLY);
+
+ Method method = TestRunnerViewPart.class.getDeclaredMethod("setShowFailuresOnly", boolean.class); //$NON-NLS-1$
+ method.setAccessible(true);
+ method.invoke(part, showFailuresOnly);
+ } catch (Throwable t) {
+ // ignore
+ }
+ }
}
public static boolean isJUnitAvailable() {
@@ -205,15 +223,16 @@
if (!isJUnitAvailable()) {
StatusManager.getManager().handle(
- new Status(IStatus.ERROR, BuildsUiPlugin.ID_PLUGIN, "JUnit is not installed."),
+ new Status(IStatus.ERROR, BuildsUiPlugin.ID_PLUGIN, "JUnit is not installed."), //$NON-NLS-1$
StatusManager.SHOW | StatusManager.BLOCK);
return;
}
if (build.getTestResult() == null) {
- StatusManager.getManager().handle(
- new Status(IStatus.ERROR, BuildsUiPlugin.ID_PLUGIN, "The build did not produce test results."),
- StatusManager.SHOW | StatusManager.BLOCK);
+ StatusManager.getManager()
+ .handle(new Status(IStatus.ERROR, BuildsUiPlugin.ID_PLUGIN,
+ "The build did not produce test results."), //$NON-NLS-1$
+ StatusManager.SHOW | StatusManager.BLOCK);
return;
}