protected void launchTests(String prefixForErrorMessage, int howManyNumbersInErrorString) throws CoreException, JavaModelException { // have to set up an 1.3 project to avoid requiring a 5.0 VM JavaProjectHelper.addRTJar13(fProject); JavaProjectHelper.addVariableEntry(fProject, new Path("JUNIT_HOME/junit.jar"), null, null); IPackageFragmentRoot root = JavaProjectHelper.addSourceContainer(fProject, "src"); IPackageFragment pack = root.createPackageFragment("pack", true, null); ICompilationUnit cu1 = pack.getCompilationUnit("LongTraceLines.java"); String initialString = prefixForErrorMessage + "Numbers:"; String initializeString = "String errorString = \"" + initialString + "\";"; String contents = "public class LongTraceLines extends TestCase {\n" + " public void testLongTraceLine() throws Exception {\n" + (" " + initializeString + "\n") + (" for (int i = 0; i < " + howManyNumbersInErrorString + "; i++) {\n") + " errorString += \" \" + i;\n" + " }\n" + " throw new RuntimeException(errorString);\n" + " }\n" + "}"; IType type = cu1.createType(contents, null, true, null); cu1.createImport("junit.framework.TestCase", null, Flags.AccDefault, null); cu1.createImport("java.util.Arrays", null, Flags.AccDefault, null); ILaunchManager lm = DebugPlugin.getDefault().getLaunchManager(); lm.addLaunchListener(this); LaunchConfigurationManager manager = DebugUIPlugin.getDefault().getLaunchConfigurationManager(); List launchShortcuts = manager.getLaunchShortcuts(); LaunchShortcutExtension ext = null; for (Iterator iter = launchShortcuts.iterator(); iter.hasNext(); ) { ext = (LaunchShortcutExtension) iter.next(); if (ext.getLabel().equals("JUnit Test")) break; } ext.launch(new StructuredSelection(type), ILaunchManager.RUN_MODE); }