public ContextCollection Run(ContextCollection contexts) { try { ILiveFormatter liveFormatter = new SilentLiveFormatter(); if (formatter is ILiveFormatter) liveFormatter = formatter as ILiveFormatter; contexts.Run(liveFormatter, failFast); if (builder.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 }; }