public override TestResult Run(EventListener listener, ITestFilter filter) { NTrace.Debug("Running test synchronously"); QueuingEventListener queue = new QueuingEventListener(); StartTextCapture(queue); using (EventPump pump = new EventPump(listener, queue.Events, true)) { pump.Start(); return(base.Run(queue, filter)); } }
public override void BeginRun(EventListener listener, ITestFilter filter) { NTrace.Debug("Running test asynchronously"); QueuingEventListener queue = new QueuingEventListener(); StartTextCapture(queue); EventPump pump = new EventPump(listener, queue.Events, true); pump.Start(); // Will run till RunFinished is received // TODO: Make sure the thread is cleaned up if we abort the run base.BeginRun(queue, filter); }
private Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args) { string fullName = args.Name; int index = fullName.IndexOf(','); if (index == -1) // Only resolve using full name. { NTrace.Debug(string.Format("Not a strong name: {0}", fullName), "'AssemblyResolver'"); return(null); } if (_cache.Contains(fullName)) { NTrace.Info(string.Format("Resolved from Cache: {0}", fullName), "'AssemblyResolver'"); return(_cache.Resolve(fullName)); } foreach (string dir in _dirs) { foreach (string file in Directory.GetFiles(dir, "*.dll")) { string fullFile = Path.Combine(dir, file); try { if (AssemblyName.GetAssemblyName(fullFile).FullName == fullName) { NTrace.Info(string.Format("Added to Cache: {0}", fullFile), "'AssemblyResolver'"); AddFile(fullFile); return(_cache.Resolve(fullName)); } } catch { // Keep going if there's a bad assembly NTrace.Debug(string.Format("Bad assembly: {0}", fullFile), "AssemblyResolver"); } } } NTrace.Debug(string.Format("Not in Cache: {0}", fullName), "'AssemblyResolver'"); return(null); }