Bug 53704 M7: JUnit assumes that development mode includes "bin" folders
JUnitLaunchConfiguration.java, starting at line 127: if (BootLoader.inDevelopmentMode()) { // assumption is that the output folder is called bin! List junitEntries= new ArrayList(); junitEntries.add(Platform.asLocalURL(new URL(url, "bin")).getFile()); //$NON-NLS-1$ If the plug-in is in the workspace as binary, or with linked content only, the bin folder does not exist, and line 130 quits with an IOException.
org.eclipse.jdt.junit/src/org/eclipse/jdt/internal/junit/launcher/JUnitLaunchConfiguration.java
junitEntries.add(Platform.asLocalURL(new URL(url, "bin")).getFile()); 
				junitEntries.add(Platform.asLocalURL(new URL(runtimeURL, "bin")).getFile()); 
				
				try {
					junitEntries.add(Platform.asLocalURL(new URL(url, "junitsupport.jar")).getFile()); 
				} catch (IOException e) {
					
				}			
				try {
					junitEntries.add(Platform.asLocalURL(new URL(runtimeURL, "junitruntime.jar")).getFile()); 
				} catch (IOException e1) {
					
				}	
				classPath= new String[cp.length + junitEntries.size()];
				Object[] jea= junitEntries.toArray();
				System.arraycopy(cp, 0, classPath, 0, cp.length);
				System.arraycopy(jea, 0, classPath, cp.length, jea.length);
			} else {
				classPath= new String[cp.length + 2];
				System.arraycopy(cp, 0, classPath, 2, cp.length);
				classPath[0]= Platform.asLocalURL(new URL(url, "junitsupport.jar")).getFile(); 
				classPath[1]= Platform.asLocalURL(new URL(runtimeURL, "junitruntime.jar")).getFile(); 
			}
		} catch (IOException e) {
			JUnitPlugin.log(e); 
		}
		return classPath;
	}		
}