public virtual void Run( FixtureExplorer explorer, ReportListener reportListener ) { if (explorer == null) throw new ArgumentNullException("explorer"); if (reportListener == null) throw new ArgumentNullException("reportListener"); this.explorer = explorer; this.report = reportListener; this.abortPending = false; try { // start reporting this.Report.StartTests(); if (this.IsAbortPending) return; // assembly setup if (!this.RunAssemblySetUp()) return; if (this.IsAbortPending) return; try { RunFixtures(); } finally { this.RunAssemblyTearDown(); } } catch (Exception ex) { ReportException rex = ReportException.FromException(ex); ReportExceptionException rexe = new ReportExceptionException( "Internal error while running tests in " + this.Explorer.AssemblyName, rex); throw rexe; } finally { this.Report.FinishTests(); this.explorer = null; this.report = null; } }
public virtual void Populate() { try { this.explorer.Explore(); this.LoadPipes(); } catch (Exception ex) { ReportException rex = ReportException.FromException(ex); ReportExceptionException rexe = new ReportExceptionException( String.Format("Error while loading tests in {0}: {1}", this.testAssembly.FullName, ex.Message ), rex); throw rexe; } }
public void PopulateFacade(TestTreeNodeFacade rfacade) { try { if (rfacade==null) throw new ArgumentNullException("rfacade"); if (this.facade != null) { this.facade.Changed -= new ResultEventHandler(rfacade.Changed); } this.facade=new RemotedTestTreeNodeFacade(); this.facade.Changed += new ResultEventHandler(rfacade.Changed); foreach (Fixture fixture in this.Explorer.FixtureGraph.Fixtures) { foreach (RunPipeStarter starter in fixture.Starters) { starter.Listeners.Add(this.facade); rfacade.AddPipe(starter.Pipe.Identifier); } } } catch (Exception ex) { ReportException rex = ReportException.FromException(ex); ReportExceptionException rexe = new ReportExceptionException( "Error while populating facade of " + this.TestAssembly.FullName, rex); throw rexe; } }