public ContextCollection Run(ContextCollection contexts) { try { ILiveFormatter liveFormatter = new SilentLiveFormatter(); if (formatter is ILiveFormatter) { liveFormatter = formatter as ILiveFormatter; } contexts.Run(liveFormatter, failFast); if (tagsFilter.HasTagFilters()) { contexts.TrimSkippedContexts(); } formatter.Write(contexts); } catch (Exception e) { Console.WriteLine(e); } return(contexts); }
public NSpecResultModel Run(string specName) { var reflector = new Reflector(this._dllFile); var nspecInstance = new nspec(); var conventions = new DefaultConventions(); var finder = new SpecFinder(reflector); var builder = new ContextBuilder(finder, new Tags().Parse(_tags), new DefaultConventions()); var contexts = builder.Contexts().Build(); var context = contexts.AllContexts().FirstOrDefault(t => t.Name == specName); var parentTypeInstance = contexts.AllContexts().FirstOrDefault(t => t is ClassContext); if (context != null && !context.HasAnyExecutedExample() && parentTypeInstance != null) { ILiveFormatter liveFormatter = new SilentLiveFormatter(); if (_formatter is ILiveFormatter) { liveFormatter = _formatter as ILiveFormatter; } var instance = (parentTypeInstance as ClassContext).type.Instance <nspec>(); context.Contexts.Where(t => t is MethodContext).Do(t => (t as MethodContext).Build(instance)); context.Run(_formatter as ILiveFormatter, false, instance); context.AssignExceptions(); if (builder.tagsFilter.HasTagFilters()) { context.TrimSkippedDescendants(); } } var contextCollection = new ContextCollection { context }; _formatter.Write(contextCollection); var serializableContextCollection = new SerializableContextCollection(); BuildResponse(serializableContextCollection, contextCollection); return(new NSpecResultModel { ContextCollection = serializableContextCollection, Output = _formatter.GetFormattedString }); }