Пример #1
0
        public async Task <int> InvokeAsync(InvocationContext context)
        {
            Logger.LogInformation("Watch Command execute");
            Logger.LogDebug("options: {options}", Options);
            Logger.LogDebug("file: {file}", Options.Configuration);
            Logger.LogDebug("poll?: {poll}", Options.Poll);
            Console.WriteLine(TaskScheduler.Current.MaximumConcurrencyLevel);
            console.WriteLine("Test".StyleUnderline());
            await console.CreateProgressBar("Engage");

            var random  = new Random();
            int counter = 0;

            for (double p = 0; p <= 1.0; p += 0.01)
            {
                if (random.NextDouble() > 0.9)
                {
                    console.WriteLine($"Random status message! {counter.ToString().StyleValue()}");
                    counter++;
                }
                console.ReportProgress(p);
                Thread.Sleep(1);
            }

            console.WriteLine("before progress bar destroy".StyleUnimportant());
            await console.DestroyProgressBar();

            console.WriteLine("afterwards".StyleSuccess());


            return(await Task.FromResult(0));
        }
Пример #2
0
        public async Task <int> InvokeAsync(InvocationContext context)
        {
            var timeTaken = Stopwatch.StartNew();

            logger.LogInformation("Test Command execute");
            console.WriteLine("Starting test command".StyleBold());
            //console.WriteLine("Using ")

            console.WriteRichLine($"Using configuration: {options.Configuration}");

            var config = await LoadConfig();

            if (config.IsNone)
            {
                return(ExitCodes.ConfigurationFailure);
            }

            await console.CreateProgressBar("Running tests");

            var progress = new Progress <double>((p) => console.ReportProgress(p));

            var results = await executor.RunAllSuitesAsync((Config)config, progress, options.Sequential? 1 : Environment.ProcessorCount);

            await console.DestroyProgressBar();

            // summarize results
            await resultFormatter.WriteResultsHeader();

            var resultStats = new ResultsStatistics();

            foreach (var result in results)
            {
                resultStats.ProcessRecord(result);
                await resultFormatter.WriteResult(resultStats.TotalResults, result);
            }


            timeTaken.Stop();
            await resultFormatter.WriteResultsFooter(new FinalResults(
                                                         (Config)config,
                                                         resultStats,
                                                         timeTaken.Elapsed
                                                         ));

            //logger.LogDebug("Received {count} results from executor", results);

            return(resultStats.TotalFailures is 0 ? ExitCodes.Success : ExitCodes.TestFailure);
        }
Пример #3
0
        public async ValueTask WriteResultsHeader()
        {
            console.WriteLine("Results".StyleUnderline());

            await ValueTask.CompletedTask;
        }