Beispiel #1
0
        public IEnumerable <TContext> Run(RunSettings settings)
        {
            var builder = new RunDescriptorsBuilder();

            runDescriptorsBuilderAction(builder);

            var runDescriptors = builder.Build();

            if (!runDescriptors.Any())
            {
                Console.Out.WriteLine("No active rundescriptors was found for this test, test will not be executed");
                return(new List <TContext>());
            }

            foreach (var runDescriptor in runDescriptors)
            {
                runDescriptor.ScenarioContext       = contextFactory();
                runDescriptor.TestExecutionTimeout  = settings.TestExecutionTimeout ?? TimeSpan.FromSeconds(90);
                runDescriptor.UseSeparateAppdomains = settings.UseSeparateAppDomains;
            }

            var sw = new Stopwatch();

            sw.Start();
            ScenarioRunner.Run(runDescriptors, behaviors, shoulds, done, limitTestParallelismTo, reports, allowedExceptions);

            sw.Stop();

            Console.Out.WriteLine("Total time for testrun: {0}", sw.Elapsed);

            return(runDescriptors.Select(r => (TContext)r.ScenarioContext));
        }
        public async Task <IEnumerable <TContext> > Run(RunSettings settings)
        {
            var builder = new RunDescriptorsBuilder();

            runDescriptorsBuilderAction(builder);

            var runDescriptors = builder.Build();

            if (!runDescriptors.Any())
            {
                Console.WriteLine("No active rundescriptors were found for this test, test will not be executed");
                return(new List <TContext>());
            }

            foreach (var runDescriptor in runDescriptors)
            {
                var scenarioContext = new TContext();
                contextInitializer(scenarioContext);
                runDescriptor.ScenarioContext = scenarioContext;
                runDescriptor.Settings.Merge(settings);
            }

            LogManager.UseFactory(new ContextAppenderFactory());

            var sw = new Stopwatch();

            sw.Start();
            await ScenarioRunner.Run(runDescriptors, behaviors, shoulds, done, reports).ConfigureAwait(false);

            sw.Stop();

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

            return(runDescriptors.Select(r => (TContext)r.ScenarioContext));
        }