示例#1
0
        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));
        }
示例#2
0
        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));
        }
示例#3
0
        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()));
        }