示例#1
0
        /// <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;
        }
示例#2
0
        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;
        }