| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- // Licensed to the .NET Foundation under one or more agreements.
- // The .NET Foundation licenses this file to you under the MIT license.
- using System;
- using System.Globalization;
- using System.Threading.Tasks;
- namespace HelixTestRunner;
- class Program
- {
- static async Task Main(string[] args)
- {
- try
- {
- var runner = new TestRunner(HelixTestRunnerOptions.Parse(args));
- var keepGoing = runner.SetupEnvironment();
- if (keepGoing)
- {
- keepGoing = await runner.InstallDotnetToolsAsync();
- }
- if (keepGoing)
- {
- if (runner.Options.InstallPlaywright)
- {
- keepGoing = runner.InstallPlaywright();
- }
- else
- {
- ProcessUtil.PrintMessage("Playwright install skipped.");
- }
- }
- runner.DisplayContents();
- if (keepGoing)
- {
- if (!await runner.CheckTestDiscoveryAsync())
- {
- ProcessUtil.PrintMessage("RunTest stopping due to test discovery failure.");
- Environment.Exit(1);
- return;
- }
- ProcessUtil.PrintMessage("Start running tests");
- var exitCode = await runner.RunTestsAsync();
- ProcessUtil.PrintMessage("Running tests complete");
- ProcessUtil.PrintMessage("Uploading test results");
- runner.UploadResults();
- ProcessUtil.PrintMessage("Test results uploaded");
- ProcessUtil.PrintMessage($"Completed Helix job with exit code '{exitCode}'");
- Environment.Exit(exitCode);
- }
- ProcessUtil.PrintMessage("Tests were not run due to previous failures. Exit code=1");
- Environment.Exit(1);
- }
- catch (Exception e)
- {
- ProcessUtil.PrintMessage($"HelixTestRunner uncaught exception: {e.ToString()}");
- Environment.Exit(1);
- }
- }
- }
|