Exemple #1
0
        public ProtoExecutionResult ExecuteHooks(string hookType, HooksStrategy strategy, IList <string> applicableTags)
        {
            var stopwatch = Stopwatch.StartNew();
            var builder   = new ProtoExecutionResult()
            {
                Failed = false
            };
            var executionResult = _sandbox.ExecuteHooks(hookType, strategy, applicableTags);

            builder.ExecutionTime = stopwatch.ElapsedMilliseconds;
            if (!executionResult.Success)
            {
                var elapsedMilliseconds = stopwatch.ElapsedMilliseconds;
                builder.Failed = true;
                var isScreenShotEnabled = Utils.TryReadEnvValue("SCREENSHOT_ENABLED");
                if (isScreenShotEnabled == null || isScreenShotEnabled.ToLower() != "false")
                {
                    builder.ScreenShot = TakeScreenshot();
                }
                builder.ErrorMessage     = executionResult.ExceptionMessage;
                builder.StackTrace       = executionResult.StackTrace;
                builder.RecoverableError = executionResult.Recoverable;
                builder.ExecutionTime    = elapsedMilliseconds;
            }
            return(builder);
        }
Exemple #2
0
        public ProtoExecutionResult ExecuteHooks(string hookType, HooksStrategy strategy, IList <string> applicableTags,
                                                 ExecutionContext executionContext)
        {
            var stopwatch = Stopwatch.StartNew();
            var builder   = new ProtoExecutionResult
            {
                Failed = false
            };
            var executionResult = _sandbox.ExecuteHooks(hookType, strategy, applicableTags, executionContext);

            builder.ExecutionTime = stopwatch.ElapsedMilliseconds;
            if (!executionResult.Success)
            {
                var elapsedMilliseconds = stopwatch.ElapsedMilliseconds;
                builder.Failed = true;
                var isScreenShotEnabled = Utils.TryReadEnvValue("SCREENSHOT_ON_FAILURE");
                if (isScreenShotEnabled == null || isScreenShotEnabled.ToLower() != "false")
                {
                    var screenshot = TakeScreenshot();
                    builder.ScreenShot        = screenshot;
                    builder.FailureScreenshot = screenshot;
                }

                builder.ErrorMessage     = executionResult.ExceptionMessage;
                builder.StackTrace       = executionResult.StackTrace;
                builder.RecoverableError = executionResult.Recoverable;
                builder.ExecutionTime    = elapsedMilliseconds;
            }

            var allPendingMessages = GetAllPendingMessages().Where(m => m != null);

            builder.Message.AddRange(allPendingMessages);
            var allPendingScreenshots = GetAllPendingScreenshots().Select(ByteString.CopyFrom);

            builder.Screenshots.AddRange(allPendingScreenshots);

            return(builder);
        }