public void DiscoverTests(ITestCaseDiscoverySink discoverySink, IMessageLogger messageLogger, IDiscoveryContext discoveryContext) { var settings = settingsRepository.Load(discoveryContext); var outputLogger = loggerFactory.CreateOutput(messageLogger, settings); outputLogger.Info("Discovery started"); IEnumerable <IEnumerable <DiscoveredExample> > groupedSpecifications; using (var crossDomainLogger = new CrossDomainLogger(outputLogger)) { groupedSpecifications = from binaryPath in sources select binaryTestDiscoverer.Discover(binaryPath, outputLogger, crossDomainLogger); } var specifications = groupedSpecifications.SelectMany(group => group); var testCases = specifications.Select(testCaseMapper.FromDiscoveredExample); testCases.Do(discoverySink.SendTestCase); outputLogger.Info("Discovery finished"); }
public void RunTests(IFrameworkHandle frameworkHandle, IRunContext runContext) { var settings = settingsRepository.Load(runContext); var outputLogger = loggerFactory.CreateOutput(frameworkHandle, settings); outputLogger.Info(String.Format("Execution by {0} started", sourceDescription)); isCanceled = false; using (var progressRecorder = progressRecorderFactory.Create((ITestExecutionRecorder)frameworkHandle)) using (var crossDomainLogger = new CrossDomainLogger(outputLogger)) { foreach (var item in testableItems) { if (isCanceled) { break; } progressRecorder.BinaryPath = item.BinaryPath; // TODO pass canceler to ITestableItem.Execute item.Execute(binaryTestExecutor, progressRecorder, outputLogger, crossDomainLogger); } } outputLogger.Info(String.Format("Execution by {0} finished", sourceDescription)); }