Example #1
0
        public async Task <TContext> Run(RunSettings settings)
        {
            var scenarioContext = new TContext();

            contextInitializer(scenarioContext);

            var runDescriptor = new RunDescriptor(scenarioContext);

            runDescriptor.Settings.Merge(settings);

            ScenarioContext.Current = scenarioContext;

            LogManager.UseFactory(Scenario.GetLoggerFactory(scenarioContext));

            var sw = new Stopwatch();

            sw.Start();
            var runSummary = await ScenarioRunner.Run(runDescriptor, behaviors, done).ConfigureAwait(false);

            sw.Stop();

            await runDescriptor.RaiseOnTestCompleted(runSummary);

            DisplayRunResult(runSummary);
            TestContext.WriteLine("Total time for testrun: {0}", sw.Elapsed);

            if (runSummary.Result.Failed)
            {
                PrintLog(scenarioContext);
                runSummary.Result.Exception.Throw();
            }

            return((TContext)runDescriptor.ScenarioContext);
        }