public UnitTestResult Run(IRemoteEventListener listener, ITestFilter filter, string path, string suiteName, List <string> supportAssemblies) { NUnitTestRunner runner = GetRunner(path); EventListenerWrapper listenerWrapper = listener != null ? new EventListenerWrapper(listener) : null; TestResult res = runner.Run(listenerWrapper, filter, path, suiteName, supportAssemblies); return(listenerWrapper.GetLocalTestResult(res)); }
NUnitTestRunner GetRunner(string assemblyPath) { TestPackage package = new TestPackage(assemblyPath); package.Settings ["ShadowCopyFiles"] = false; DomainManager dm = new DomainManager(); AppDomain domain = dm.CreateDomain(package); string asm = Path.Combine(Path.GetDirectoryName(GetType().Assembly.Location), "NUnitRunner.dll"); runner = (NUnitTestRunner)domain.CreateInstanceFromAndUnwrap(asm, "MonoDevelop.NUnit.External.NUnitTestRunner"); runner.Initialize(typeof(NF.Assert).Assembly.Location, typeof(NC.Test).Assembly.Location); return(runner); }
public UnitTestResult Run(IRemoteEventListener listener, ITestFilter filter, string path, string suiteName, List <string> supportAssemblies, string testRunnerType, string testRunnerAssembly, string crashLogFile) { NUnitTestRunner runner = GetRunner(path); EventListenerWrapper listenerWrapper = listener != null ? new EventListenerWrapper(listener) : null; UnhandledExceptionEventHandler exceptionHandler = (object sender, UnhandledExceptionEventArgs e) => { var ex = new RemoteUnhandledException((Exception)e.ExceptionObject); File.WriteAllText(crashLogFile, ex.Serialize()); }; AppDomain.CurrentDomain.UnhandledException += exceptionHandler; try { TestResult res = runner.Run(listenerWrapper, filter, path, suiteName, supportAssemblies, testRunnerType, testRunnerAssembly); return(listenerWrapper.GetLocalTestResult(res)); } finally { AppDomain.CurrentDomain.UnhandledException -= exceptionHandler; } }
public NunitTestInfo GetTestInfo(string path, List <string> supportAssemblies) { NUnitTestRunner runner = GetRunner(path); return(runner.GetTestInfo(path, supportAssemblies)); }
NUnitTestRunner GetRunner (string assemblyPath) { TestPackage package = new TestPackage (assemblyPath); package.Settings ["ShadowCopyFiles"] = false; DomainManager dm = new DomainManager (); AppDomain domain = dm.CreateDomain (package); string asm = Path.Combine (Path.GetDirectoryName (GetType ().Assembly.Location), "NUnitRunner.dll"); runner = (NUnitTestRunner) domain.CreateInstanceFromAndUnwrap (asm, "MonoDevelop.NUnit.External.NUnitTestRunner"); runner.Initialize (typeof(NF.Assert).Assembly.Location, typeof(NC.Test).Assembly.Location); return runner; }