private void DiscoverTests(TestOptions options, IFrontController frontController, IServiceProvider services) { var visitor = new DiscoveryVisitor((services.GetService(typeof(ITestSinkFactory)) as ITestSinkFactory)?.CreateDiscoverySink(services) ?? new DefaultTestDiscoverySink()); frontController.Find(true, visitor, options); visitor.Finished.WaitOne(); }
private bool RunTests(TestOptions options, IFrontController frontController, IServiceProvider services) { var visitor = new ExecutionVisitor((services.GetService(typeof(ITestSinkFactory)) as ITestSinkFactory)?.CreateExecutionSink(services) ?? new DefaultTestExecutionSink()); frontController.RunAll(visitor, options, options); visitor.Finished.WaitOne(); return(!visitor.HasFailures); }
AssemblyRunner(AppDomainSupport appDomainSupport, string assemblyFileName, string configFileName = null, bool shadowCopy = true, string shadowCopyFolder = null) { controller = new XunitFrontController(appDomainSupport, assemblyFileName, configFileName, shadowCopy, shadowCopyFolder, diagnosticMessageSink: this); configuration = ConfigReader.Load(assemblyFileName, configFileName); }
public WebApiHook(IFrontController frontController, HttpConfiguration config, string baseRoute) { ServiceLocator.FrontController = frontController; config.Services.Replace(typeof(IHttpActionSelector), new EndpointActionSelector()); config.Services.Replace(typeof(IHttpControllerSelector), new EndpointSelector <WebApiController>(config)); config.Routes.MapHttpRoute(name: "Subvert.Route", routeTemplate: baseRoute); }
void EnsureInitialized() { if (innerController == null) { innerController = CreateInnerController(); descriptorProvider = (innerController as ITestCaseDescriptorProvider) ?? new DefaultTestCaseDescriptorProvider(innerController); bulkDeserializer = (innerController as ITestCaseBulkDeserializer) ?? new DefaultTestCaseBulkDeserializer(innerController); toDispose.Push(innerController); } }
public static IFrontController GetInstance() { lock (_threadsafeLock) { if (_instance == null) _instance = new FrontController(); return _instance; } }
public static IFrontController GetInstance() { lock (_threadsafeLock) { if (_instance == null) { _instance = new FrontController(); } return(_instance); } }
AssemblyRunner2(AppDomainSupport appDomainSupport, string assemblyFileName, TaskCompletionSource <string> tcs, CancellationToken cancellationToken, string configFileName = null, bool shadowCopy = true, string shadowCopyFolder = null) { this.tcs = tcs; this.cancellationToken = cancellationToken; this.assemblyFileName = assemblyFileName; controller = new XunitFrontController(appDomainSupport, assemblyFileName, configFileName, shadowCopy, shadowCopyFolder, diagnosticMessageSink: MessageSinkAdapter.Wrap(this)); configuration = ConfigReader.Load(assemblyFileName, configFileName); }
/// <summary> /// Initializes a new instance of the <see cref="XunitFrontController"/> class. /// </summary> /// <param name="assemblyFileName">The test assembly.</param> /// <param name="configFileName">The test assembly configuration file.</param> /// <param name="shadowCopy">If set to <c>true</c>, runs tests in a shadow copied app domain, which allows /// tests to be discovered and run without locking assembly files on disk.</param> public XunitFrontController(string assemblyFileName, string configFileName = null, bool shadowCopy = true) { Guard.FileExists("assemblyFileName", assemblyFileName); var xunit1Path = Path.Combine(Path.GetDirectoryName(assemblyFileName), "xunit.dll"); var xunit2Path = Path.Combine(Path.GetDirectoryName(assemblyFileName), "xunit2.dll"); var sourceInformationProvider = new VisualStudioSourceInformationProvider(); if (File.Exists(xunit2Path)) innerController = new Xunit2(sourceInformationProvider, assemblyFileName, configFileName, shadowCopy); else if (File.Exists(xunit1Path)) innerController = new Xunit1(sourceInformationProvider, assemblyFileName, configFileName, shadowCopy); else throw new ArgumentException("Unknown test framework: Could not find xunit.dll or xunit2.dll.", assemblyFileName); }
public frmMain() { this._frontController = FrontController.GetInstance(); this.View_OnQueryRecordsCompletion = this.RefreshGridData; this.View_OnGetLogStatisticsCompletion = this.UpdateDashboard; this.View_OnGetCalendarDataCompletion = this.UpdateCalendarData; this.View_OnGetObjectiveDataCompletion = this.UpdateObjectiveData; this.View_OnViewReady = OnViewReady; this.View_OnShow = OnShow; InitializeComponent(); this.InitializeRequiredData(); this.SetTimer(); this.StartTimer(); }
public Testable_xunit(int exitCode) { BuildEngine = Substitute.For <IBuildEngine>(); FrontController = Substitute.For <IFrontController>(); FrontController.WhenAny(fc => fc.Find(false, null)) .Do <bool, IMessageSink>((_, sink) => ReturnDiscoveryMessages(sink)); FrontController.WhenAny(fc => fc.Find("", false, null)) .Do <string, bool, IMessageSink>((_, __, sink) => ReturnDiscoveryMessages(sink)); FrontController.WhenAny(fc => fc.Run(null, null)) .Do <object, IMessageSink>((_, sink) => { var testAssemblyStarting = Substitute.For <ITestAssemblyStarting>(); testAssemblyStarting.AssemblyFileName.Returns("Name.dll"); sink.OnMessage(testAssemblyStarting); sink.OnMessage(Substitute.For <ITestAssemblyFinished>()); }); Assemblies = new ITaskItem[0]; ExitCode = exitCode; }
public Testable_xunit(int exitCode) { BuildEngine = Substitute.For<IBuildEngine>(); FrontController = Substitute.For<IFrontController>(); FrontController.WhenAny(fc => fc.Find(false, null, null)) .Do<bool, IMessageSink>((_, sink) => ReturnDiscoveryMessages(sink)); FrontController.WhenAny(fc => fc.Find("", false, null, null)) .Do<string, bool, IMessageSink>((_, __, sink) => ReturnDiscoveryMessages(sink)); FrontController.WhenAny(fc => fc.RunTests((IEnumerable<ITestCase>)null, null, null)) .Do<object, IMessageSink>((_, sink) => { var assembly = Mocks.TestAssembly("Name.dll"); var testAssemblyStarting = Substitute.For<ITestAssemblyStarting>(); testAssemblyStarting.TestAssembly.Returns(assembly); sink.OnMessage(testAssemblyStarting); sink.OnMessage(Substitute.For<ITestAssemblyFinished>()); }); Assemblies = new ITaskItem[0]; ExitCode = exitCode; }
public CustomAssemblyRunner(string assemblyFileName) { controller = new XunitFrontController( AppDomainSupport.Denied, assemblyFileName, diagnosticMessageSink: MessageSinkAdapter.Wrap(this)); configuration = ConfigReader.Load(assemblyFileName); }
// Discovery + execution constructor XunitFrontController(IFrontController innerController) : this((IFrontControllerDiscoverer)innerController) { this.innerController = Guard.ArgumentNotNull(innerController); }
public WebApiController() { _controller = ServiceLocator.FrontController; }
public WebApiHook(IFrontController frontController, HttpConfiguration config) : this(frontController, config, "{*url}") { }
public Testable_xunit(int exitCode) { BuildEngine = Substitute.For<IBuildEngine>(); FrontController = Substitute.For<IFrontController>(); FrontController.WhenAny(fc => fc.Find(false, null)) .Do<bool, IMessageSink>((_, sink) => ReturnDiscoveryMessages(sink)); FrontController.WhenAny(fc => fc.Find("", false, null)) .Do<string, bool, IMessageSink>((_, __, sink) => ReturnDiscoveryMessages(sink)); FrontController.WhenAny(fc => fc.Run(null, null)) .Do<object, IMessageSink>((_, sink) => sink.OnMessage(Substitute.For<ITestAssemblyFinished>())); Assemblies = new ITaskItem[0]; ExitCode = exitCode; }