private void Run(string[] args) { var commandLine = new CommandLine(args); var scanner = new VisualStudioAssemblyScanner(services); var assemblyNames = libraryManager.GetReferencingLibraries("machine.specifications").SelectMany(l => l.Assemblies); foreach (var assemblyName in assemblyNames) { var assembly = loadContext.Load(assemblyName); if (commandLine.DesignTime) { scanner.SendToVisualStudio(assembly); var listener = new AggregateRunListener(new ISpecificationRunListener[] { new VisualStudioRunListener(services) }); var runner = new DefaultRunner(listener, RunOptions.Default); if (commandLine.Tests.Any()) { var converter = new VisualStudioTestConverter(); var contexts = scanner.GetContexts(assembly); foreach (var context in contexts) { foreach (var specification in context.Specifications) { var test = converter.GetVisualStudioTest(context, specification); if (commandLine.Tests.Any(t => t == test.FullyQualifiedName)) { runner.RunMember(assembly, specification.FieldInfo); } } } } else { runner.RunAssembly(assembly); } } else { var listener = new AggregateRunListener(new ISpecificationRunListener[] { new OutputRunListener(new ColorOutput(new VerboseOutput(new DefaultConsole()))), }); var runner = new DefaultRunner(listener, RunOptions.Default); runner.RunAssembly(assembly); } } }
public VisualStudioAssemblyScanner(IServiceProvider services) { provider = (ISourceInformationProvider) services.GetService(typeof (ISourceInformationProvider)); sink = (ITestDiscoverySink) services.GetService(typeof (ITestDiscoverySink)); converter = new VisualStudioTestConverter(); }
public VisualStudioRunListener(IServiceProvider services) { sink = (ITestExecutionSink)services.GetService(typeof(ITestExecutionSink)); converter = new VisualStudioTestConverter(); }