Bug 56016 JUnitLaunchShortcut#launchConfiguration() should call DebugUITools#launch() instead of config.launch() [JUnit]
I20040324 ILaunchConfiguration#launch(String, IProgressMonitor) never performs a build prior to the launch. DebugUITools#launch(ILaunchConfiguratio, String) saves and builds the workspace according to the current preference settings.
org.eclipse.jdt.junit/src/org/eclipse/jdt/internal/junit/launcher/JUnitLaunchShortcut.java
return;
			}	
			if (search[0] instanceof IJavaElement) {
				IJavaElement element= (IJavaElement)search[0];
				if (element.getElementType() < IJavaElement.COMPILATION_UNIT) {
					launchContainer(element, mode);
					return;
				}
				if (element.getElementType() == IJavaElement.METHOD) {
					launchMethod((IMethod)element, mode);
					return;
				}
			}
			
			launchType(search, mode);
		}
	}
	
	protected void launchType(Object[] search, String mode) {
		IType[] types= null;
		try {
			types= TestSearchEngine.findTests(new ProgressMonitorDialog(getShell()), search);
		} catch (InterruptedException e) {
			JUnitPlugin.log(e);
			return;
		} catch (InvocationTargetException e) {
			JUnitPlugin.log(e);
			return;
		}
		IType type= null;