package monolipse.nunit.launching; import java.io.IOException; import monolipse.core.BooCore; import monolipse.core.IMonoLauncher; import monolipse.core.foundation.WorkspaceUtilities; import monolipse.core.launching.BooLauncher; import monolipse.nunit.NUnitPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.debug.core.DebugPlugin; import org.eclipse.debug.core.ILaunch; import org.eclipse.debug.core.ILaunchConfiguration; import org.eclipse.debug.core.model.ILaunchConfigurationDelegate; public class TestRunnerLaunchConfigurationDelegate implements ILaunchConfigurationDelegate { public void launch(ILaunchConfiguration configuration, String mode, ILaunch launch, IProgressMonitor monitor) throws CoreException { try { IMonoLauncher launcher = BooCore.getRuntime().createLauncher(getTestRunnerLocation()); launcher.add(BooLauncher.getProcessMessengerPort(configuration)); launch.addProcess(DebugPlugin.newProcess(launch, launcher.launch(), configuration.getName())); } catch (IOException e) { NUnitPlugin.logException(e); } } private String getTestRunnerLocation() throws IOException { return WorkspaceUtilities.getResourceLocalPath(NUnitPlugin.getDefault().getBundle(), "bin/monolipse.nunit.server.exe"); } }