/// <summary> /// Initializes a new instance of the <see cref="Assert"/> class. /// </summary> /// <param name="result">The test result.</param> /// <param name="log">The logger.</param> /// <exception cref="ArgumentNullException"> /// Thrown if <paramref name="result"/> is <see langword="null" />. /// </exception> /// <exception cref="ArgumentNullException"> /// Thrown if <paramref name="log"/> is <see langword="null" />. /// </exception> public Assert(TestResult result, Log log) { { Lokad.Enforce.Argument(() => result); Lokad.Enforce.Argument(() => log); } m_Result = result; m_Log = log; }
static int Main() { // Minimize directly on start-up so that we can't take focus on our own window MinimizeConsoleWindow(); var globalResult = new TestResult(); try { // Initialize the container var container = DependencyInjection.Load(); InitializeWhite(container); var reporters = container.Resolve<IEnumerable<IReporter>>(); var log = container.Resolve<Log>(); var applicationPath = ApplicationProxies.GetApolloExplorerPath(log); if (string.IsNullOrEmpty(applicationPath)) { var message = "Could not find application path."; reporters.ForEach(r => r.AddErrorMessage(message)); globalResult.AddError(message); } // Select the type of test to execute var views = container.ResolveKeyed<IUserInterfaceVerifier>(typeof(VerifyViews)); var projects = container.ResolveKeyed<IUserInterfaceVerifier>(typeof(VerifyProject)); foreach (var testCase in views.TestsToExecute().Append(projects.TestsToExecute())) { var message = string.Format( CultureInfo.InvariantCulture, "Starting: {0}", testCase.Name); reporters.ForEach(r => r.AddInformationalMessage(message)); var localResult = ExecuteTestCase(testCase, log, applicationPath); if (localResult.Status == TestStatus.Passed) { var succesMessage = string.Format( CultureInfo.InvariantCulture, "Successfully completed test: {0}", testCase.Name); reporters.ForEach(r => r.AddInformationalMessage(succesMessage)); } else { foreach (var error in localResult.Errors) { var failMessage = error; globalResult.AddError(error); reporters.ForEach(r => r.AddErrorMessage(failMessage)); } } } } catch (Exception e) { var message = string.Format( CultureInfo.InvariantCulture, "Unhandled exception occurred during the execution of the regression tests. Error was: {0}", e); globalResult.AddError(message); } return globalResult.Status == TestStatus.Passed ? NormalApplicationExitCode : UnhandledExceptionApplicationExitCode; }