public IObservable <bfgWorker> SpawnTestWorker(string[] tags = null) { var instanceId = _workerCluster.Workflow.Workers.Count + 1; "Spawning worker".LogDebug(instanceId); //$"Streaming logs".LogDebug(); //rxnManager.Publish(new StreamLogs(TimeSpan.FromMinutes(60))).Until(); $"Starting worker".LogDebug(); var testWorker = new bfgWorker( $"{ClientId}/TestWorker#{instanceId}", "local", tags ?? theBfg.Args.Where(w => w.StartsWith("#")).ToArray(), _appServiceRegistry, _serviceDiscovery, _zipService, _appStatus, _eventManager, _appUpdates, _appStatusCfg, _resolver.Resolve <Func <ITestArena[]> >() ); _workerCluster.Process(new WorkerDiscovered <StartUnitTest, UnitTestResult>() { Worker = testWorker }) .SelectMany(e => _eventManager.Publish(e)).Until(); return(StartDiscoveringTestsIf(_cfg, testWorker).Select(_ => testWorker)); }
public IDisposable LaunchUnitTests(string[] args, IObservable <StartUnitTest[]> allUnitTests, IResolveTypes resolver) { var stopAutoLaunchingTestsIntoArena = LaunchUnitTestsToTestArenaDelayed(allUnitTests, GetTestarenaUrlFromArgs(args), resolver.Resolve <IAppStatusCfg>()).Until(); var broadCaste = allUnitTests.FirstAsync() .Do(unitTests => BroadcasteStatsToTestArena(resolver.Resolve <IManageReactors>())) .Until(); return(new CompositeDisposable(stopAutoLaunchingTestsIntoArena, broadCaste)); }
public T Get <T>() { ConstructorInfo constructorInfo = FindConstructorFor <T>(); ParameterInfo[] constructorParams = constructorInfo.GetParameters(); var mockParams = new object[constructorParams.Length]; for (int i = 0; i < constructorParams.Length; i++) { Type paramType = constructorParams[i].ParameterType; if (_bindings.ContainsKey(paramType)) { IResolveTypes resolver = _bindings[paramType]; mockParams[i] = resolver.Resolve(); } else if (paramType.IsValueType) { mockParams[i] = Activator.CreateInstance(paramType); } } return((T)constructorInfo.Invoke(mockParams.ToArray())); }