TestResult RunAssembly(MachineAssemblyTest assemblyTest, ITestCommand command, TestStep parentTestStep) { ITestContext assemblyContext = command.StartPrimaryChildStep(parentTestStep); AssemblyInfo assemblyInfo = new AssemblyInfo(assemblyTest.Name, assemblyTest.AssemblyFilePath); TestOutcome outcome = TestOutcome.Passed; _listener.OnAssemblyStart(assemblyInfo); assemblyTest.AssemblyContexts.Each(context => context.OnAssemblyStart()); foreach (ITestCommand contextCommand in command.Children) { MachineContextTest contextTest = contextCommand.Test as MachineContextTest; if (contextTest == null) { continue; } var contextResult = RunContextTest(assemblyTest, contextTest, contextCommand, assemblyContext.TestStep); outcome = outcome.CombineWith(contextResult.Outcome); assemblyContext.SetInterimOutcome(outcome); } assemblyTest.AssemblyContexts.Reverse().Each(context => context.OnAssemblyComplete()); _listener.OnAssemblyEnd(assemblyInfo); return(assemblyContext.FinishStep(outcome, null)); }
void OnAssemblyStart(Assembly assembly) { try { _listener.OnAssemblyStart(assembly.GetInfo()); } catch (Exception err) { _listener.OnFatalError(new ExceptionResult(err)); } }
public void Run(Assembly assembly, IEnumerable <Context> contexts) { bool hasExecutableSpecifications = contexts.Where(x => x.HasExecutableSpecifications).Any(); var explorer = new AssemblyExplorer(); var assemblyContexts = new List <IAssemblyContext>(explorer.FindAssemblyContextsIn(assembly)); var globalCleanups = new List <ICleanupAfterEveryContextInAssembly>(explorer.FindAssemblyWideContextCleanupsIn(assembly)); var specificationSupplements = new List <ISupplementSpecificationResults>(explorer.FindSpecificationSupplementsIn(assembly)); _listener.OnAssemblyStart(assembly.GetInfo()); var executedAssemblyContexts = new List <IAssemblyContext>(); try { if (hasExecutableSpecifications) { assemblyContexts.ForEach(assemblyContext => { assemblyContext.OnAssemblyStart(); executedAssemblyContexts.Add(assemblyContext); }); } foreach (var context in contexts) { RunContext(context, globalCleanups, specificationSupplements); } } catch (Exception err) { _listener.OnFatalError(new ExceptionResult(err)); } finally { if (hasExecutableSpecifications) { try { executedAssemblyContexts.Reverse(); executedAssemblyContexts.ForEach(assemblyContext => assemblyContext.OnAssemblyComplete()); } catch (Exception err) { _listener.OnFatalError(new ExceptionResult(err)); throw; } } } _listener.OnAssemblyEnd(assembly.GetInfo()); }
private void OnListenEvent(string value) { using (var stringReader = new StringReader(value)) { XDocument doc = XDocument.Load(stringReader); XElement element = doc.XPathSelectElement("/listener/*"); switch (element.Name.ToString()) { case "onassemblystart": _runListener.OnAssemblyStart(AssemblyInfo.Parse(element.XPathSelectElement("//onassemblystart/*").ToString())); break; case "onassemblyend": _runListener.OnAssemblyEnd(AssemblyInfo.Parse(element.XPathSelectElement("//onassemblyend/*").ToString())); break; case "onrunstart": _runListener.OnRunStart(); break; case "onrunend": _runListener.OnRunEnd(); break; case "oncontextstart": _runListener.OnContextStart(ContextInfo.Parse(element.XPathSelectElement("//oncontextstart/*").ToString())); break; case "oncontextend": _runListener.OnContextEnd(ContextInfo.Parse(element.XPathSelectElement("//oncontextend/*").ToString())); break; case "onspecificationstart": _runListener.OnSpecificationStart(SpecificationInfo.Parse(element.XPathSelectElement("//onspecificationstart/*").ToString())); break; case "onspecificationend": _runListener.OnSpecificationEnd( SpecificationInfo.Parse(element.XPathSelectElement("//onspecificationend/specificationinfo").ToString()), Result.Parse(element.XPathSelectElement("//onspecificationend/result").ToString())); break; case "onfatalerror": _runListener.OnFatalError(ExceptionResult.Parse(element.XPathSelectElement("//onfatalerror/*").ToString())); break; } } }
public static void Run(this ISpecificationRunListener adapter, AssemblyInfo assemblyInfo, SpecificationInfo specificationInfo, Result failure, ExceptionResult exceptionResult, ContextInfo contexInfo) { adapter.OnAssemblyStart(assemblyInfo); adapter.OnAssemblyEnd(assemblyInfo); adapter.OnSpecificationStart(specificationInfo); adapter.OnSpecificationEnd(specificationInfo, failure); adapter.OnFatalError(exceptionResult); adapter.OnContextStart(contexInfo); adapter.OnContextEnd(contexInfo); adapter.OnRunStart(); adapter.OnRunEnd(); }
public void OnAssemblyStart(AssemblyInfo assembly) { runListener.OnAssemblyStart(assembly); }
public void OnAssemblyStart(Runner.AssemblyInfo assembly) { listener.OnAssemblyStart(new AssemblyInfo(assembly.Name, assembly.Location)); }
public virtual void OnAssemblyStart(AssemblyInfo assemblyInfo) { _runListener.OnAssemblyStart(assemblyInfo); }