public async Task <TestResult> Run(object testClassInstance, AggregateEventReceiver aggregateReceiver, TestMethod specificMethod) { await ExecuteTestInit(testClassInstance); return(await specificMethod.Invoke(testClassInstance, aggregateReceiver)); }
public async Task <List <TestResult> > Run(object testClassInstance, AggregateEventReceiver aggregateReceiver) { aggregateReceiver.Handle(new TestClassStarted(testClassInstance)); var results = new List <TestResult>(); foreach (var method in Methods) { await ExecuteTestInit(testClassInstance); var result = await method.Invoke(testClassInstance, aggregateReceiver); results.Add(result); } var totalTime = results.Sum(x => x.Elapsed.TotalMilliseconds); aggregateReceiver.Handle(new TestClassFinished(testClassInstance, TimeSpan.FromMilliseconds(totalTime))); return(results); }
private async Task <TestResult> RunTestMethod(TestClass testClass, TestMethod method) { using (var scope = _container.CreateScope()) { var tests = scope.ServiceProvider .GetServices(testClass.Type) .ToList(); if (!tests.Any()) { throw new ArgumentOutOfRangeException(nameof(testClass), testClass, $"{testClass.Type.FullName} has not been registered."); } var test = tests[0]; var eventReceivers = scope.ServiceProvider.GetServices <IEventReceiver>(); var aggregateReceiver = new AggregateEventReceiver(eventReceivers); return(await testClass.Run(test, aggregateReceiver, method)); } }