/// <summary>
        /// The trigger test case end.
        /// </summary>
        /// <param name="sender">
        /// The sender.
        /// </param>
        /// <param name="e">
        /// The e.
        /// </param>
        private void TriggerTestCaseEnd(object sender, TestCaseEndEventArgs e)
        {
            var dataCollectionContext = new DataCollectionContext(e.TestElement);
            var testCaseEndArgs       = new TestCaseEndArgs(dataCollectionContext, e.TestOutcome);

            this.TriggerInProcDataCollectionMethods(Constants.TestCaseEndMethodName, testCaseEndArgs);
        }
 internal void InvokeTestCaseEnd(object sender, TestCaseEndEventArgs args)
 {
     if (!this.DisableInvoke && this.onTestCaseEnd != null)
     {
         this.onTestCaseEnd.Invoke(sender, args);
     }
 }
        private void OnTestCaseEnd(object sender, TestCaseEndEventArgs e)
        {
            Trace.TraceInformation("Test case ended: {0}", e.TestCaseName);

            mSendMessage(new RequestMessage
            {
                SendInstrumentationEvents = new SendInstrumentationEventsRequest
                {
                    Mode = SendInstrumentationEventsRequest.Types.RequestMode.OnceUnsent
                }
            });

            string testCaseId = e.TestCaseId.ToString();

            mSendMessage(new RequestMessage
            {
                RecordEvent = new RecordEventRequest
                {
                    Id          = cEndTestCaseEventId,
                    Name        = testCaseId,
                    Description = $"End of test case {e.TestCaseName}"
                }
            });

            mLatestEndedTestName.FirstAsync(testName => testName is null || testName == testCaseId)
            .Wait();
        }
Esempio n. 4
0
        /// <summary>
        /// Called when Test Case End event is invoked
        /// </summary>
        /// <param name="sender">Sender</param>
        /// <param name="e">TestCaseEndEventArgs</param>
        private void EventsTestCaseEnd(object sender, TestCaseEndEventArgs e)
        {
            if (EqtTrace.IsInfoEnabled)
            {
                EqtTrace.Info("Blame Collector : Test Case End");
            }

            this.testEndCount++;
        }
Esempio n. 5
0
        public void SendTestCaseCompletedShouldThrowExceptionIfThrownByCommunicationManager()
        {
            var testCaseEndEventArgs = new TestCaseEndEventArgs();

            this.mockCommunicationManager.Setup(x => x.SendMessage(MessageType.DataCollectionTestEnd, It.IsAny <TestCaseEndEventArgs>())).Throws <Exception>();

            Assert.ThrowsException <Exception>(() =>
            {
                this.dataCollectionTestCaseEventSender.SendTestCaseEnd(testCaseEndEventArgs);
            });
        }
        private void OnTestCaseEnd(object sender, TestCaseEndEventArgs e)
        {
            if (e.TestOutcome == TestOutcome.Passed)
                _stats.Passed += 1;
            else if (e.TestOutcome == TestOutcome.Failed)
                _stats.Failed += 1;
            else
                _stats.Other += 1;

            _nyanCat.UpdateStats(_stats);
        }
Esempio n. 7
0
        public void TestCaseEndedShouldSendEventToDataCollector()
        {
            var isEndInvoked = false;

            this.SetupMockDataCollector((XmlElement a, DataCollectionEvents b, DataCollectionSink c, DataCollectionLogger d, DataCollectionEnvironmentContext e) => { b.TestCaseEnd += (sender, eventArgs) => isEndInvoked = true; });

            this.dataCollectionManager.InitializeDataCollectors(this.dataCollectorSettings);
            var args = new TestCaseEndEventArgs();

            this.dataCollectionManager.TestCaseEnded(args);

            Assert.IsTrue(isEndInvoked);
        }
        public void RaiseEventsShouldRaiseEventsIfTestCaseEndEventArgsIsPassed()
        {
            this.isEventRaised = false;
            var testCase = new TestCase();

            this.context = new DataCollectionContext(testCase);

            this.events.TestCaseEnd += this.TestCaseEndMessageHandler;
            var eventArgs = new TestCaseEndEventArgs(this.context, testCase, TestOutcome.Passed);

            this.events.RaiseEvent(eventArgs);

            Assert.IsTrue(this.isEventRaised);
        }
Esempio n. 9
0
        public void TestCaseEndedShouldNotSendEventToDataCollectorIfDataColletionIsNotEnbled()
        {
            var isEndInvoked = false;
            var runSettings  = string.Format(this.defaultRunSettings, this.dataCollectorSettings);

            this.SetupMockDataCollector((XmlElement a, DataCollectionEvents b, DataCollectionSink c, DataCollectionLogger d, DataCollectionEnvironmentContext e) =>
            {
                b.TestCaseEnd += (sender, eventArgs) => isEndInvoked = true;
            });

            var args = new TestCaseEndEventArgs();

            Assert.IsFalse(isEndInvoked);
        }
Esempio n. 10
0
        /// <summary>
        /// Called when Test Case End event is invoked
        /// </summary>
        /// <param name="sender">Sender</param>
        /// <param name="e">TestCaseEndEventArgs</param>
        private void EventsTestCaseEnd(object sender, TestCaseEndEventArgs e)
        {
            if (EqtTrace.IsInfoEnabled)
            {
                EqtTrace.Info("Blame Collector : Test Case End");
            }

            this.testEndCount++;

            // Update the test object in the dictionary as the test has completed.
            if (this.testObjectDictionary.ContainsKey(e.TestElement.Id))
            {
                this.testObjectDictionary[e.TestElement.Id].IsCompleted = true;
            }
        }
Esempio n. 11
0
        /// <inheritdoc />
        public Collection <AttachmentSet> SendTestCaseEnd(TestCaseEndEventArgs e)
        {
            var attachmentSets = new Collection <AttachmentSet>();

            this.communicationManager.SendMessage(MessageType.DataCollectionTestEnd, e);

            var message = this.communicationManager.ReceiveMessage();

            if (message.MessageType == MessageType.DataCollectionTestEndResult)
            {
                attachmentSets = this.dataSerializer.DeserializePayload <Collection <AttachmentSet> >(message);
            }

            return(attachmentSets);
        }
Esempio n. 12
0
        private void EventsOnTestCaseEnd(object sender, TestCaseEndEventArgs e)
        {
            _logger.LogWarning(context.SessionDataCollectionContext, $"Test Case End: {e.TestCaseName}");

            // Find the test and set the correct test outcome.
            var test = _testResults.Tests.FirstOrDefault(x => x.Name == e.TestElement.FullyQualifiedName);

            if (test == null)
            {
                _logger.LogError(context.SessionDataCollectionContext,
                                 "Test case end event received but no test case start was recorded earlier.");
                return;
            }

            test.Outcome = e.TestOutcome;
        }
Esempio n. 13
0
        private void OnTestCaseEnd(object sender, TestCaseEndEventArgs e)
        {
            ValidateArg.NotNull(e, "TestCaseEndEventArgs");

            Debug.Assert(e.Context != null, "Context is null");
            Debug.Assert(e.Context.HasTestCase, "Context is not for a test case");

            if (EqtTrace.IsVerboseEnabled)
            {
                EqtTrace.Verbose(
                    "EventLogDataCollector: TestCaseEnd received for test '{0}' with Test Outcome: {1}.",
                    e.TestCaseName,
                    e.TestOutcome);
            }

            this.WriteCollectedEventLogEntries(e.Context, false, TimeSpan.MaxValue, DateTime.Now);
        }
Esempio n. 14
0
 void Events_TestCaseEnd(object sender, TestCaseEndEventArgs e)
 {
     clocks.TryGetValue($"{e.Context?.SessionId?.Id}:{e.TestCaseId}", out Stopwatch clock);
     log.Value.Log(new
     {
         Name      = "TestCaseEnd",
         RequestId = BuildArn ?? $"{e.Context?.SessionId?.Id}",
         Response  = new
         {
             RequestDuration = clock.Elapsed.TotalMilliseconds,
             TestCaseId      = $"{e.TestCaseId}",
             e.TestCaseName,
             e.TestOutcome
         }
     });
     log2.LogWarning(e.Context, e.TestCaseName);
 }
        private void OnTestCaseEnd(object sender, TestCaseEndEventArgs e)
        {
            if (e.TestOutcome == TestOutcome.Passed)
            {
                _stats.Passed += 1;
            }
            else if (e.TestOutcome == TestOutcome.Failed)
            {
                _stats.Failed += 1;
            }
            else
            {
                _stats.Other += 1;
            }

            _nyanCat.UpdateStats(_stats);
        }
Esempio n. 16
0
        public void SendTestCaseEndShouldReturnAttachments()
        {
            var testCaseEndEventArgs = new TestCaseEndEventArgs();

            var attachmentSet = new AttachmentSet(new Uri("my://attachment"), "displayname");

            this.mockCommunicationManager.Setup(x => x.ReceiveMessage()).Returns(new Message()
            {
                MessageType = MessageType.DataCollectionTestEndResult, Payload = JToken.FromObject(new Collection <AttachmentSet>()
                {
                    attachmentSet
                })
            });
            var attachments = this.dataCollectionTestCaseEventSender.SendTestCaseEnd(testCaseEndEventArgs);

            Assert.AreEqual(attachments[0].Uri, attachmentSet.Uri);
            Assert.AreEqual(attachments[0].DisplayName, attachmentSet.DisplayName);
        }
        /// <inheritdoc />
        public void RaiseTestCaseEnd(TestCaseEndEventArgs e)
        {
            var isTestCaseEndAlreadySent = false;

            lock (this.testCaseEndStatusSyncObject)
            {
                isTestCaseEndAlreadySent = this.testCaseEndStatusMap.Contains(e.TestCaseId);
                if (!isTestCaseEndAlreadySent)
                {
                    this.testCaseEndStatusMap.Add(e.TestCaseId);
                }

                // Do not support multiple - testcasends for a single test case start
                // TestCaseEnd must always be preceded by testcasestart for a given test case id
                if (!isTestCaseEndAlreadySent)
                {
                    // If dictionary contains results for this test case, update them with in-proc data and flush them
                    List <TestResult> testResults;
                    if (this.testResultDictionary.TryGetValue(e.TestCaseId, out testResults))
                    {
                        foreach (var testResult in testResults)
                        {
                            var testResultEventArgs = new TestResultEventArgs(testResult);
                            this.TestResult.SafeInvoke(this, testResultEventArgs, "DataCollectionTestCaseEventManager.RaiseTestCaseEnd");

                            // TestResult updated with in-proc data, just flush
                            this.testRunCache.OnNewTestResult(testResult);
                        }

                        this.testResultDictionary.Remove(e.TestCaseId);
                    }
                    else
                    {
                        // Call all in-proc datacollectors - TestCaseEnd event
                        this.TestCaseEnd.SafeInvoke(this, e, "DataCollectionTestCaseEventManager.RaiseTestCaseEnd");
                    }
                }
            }
        }
        private void TriggerTestCaseEnd(object sender, TestCaseEndEventArgs e)
        {
            var attachments = this.dataCollectionTestCaseEventSender.SendTestCaseEnd(e);

            if (attachments != null)
            {
                lock (syncObject)
                {
                    Collection <AttachmentSet> attachmentSets;
                    if (!attachmentsCache.TryGetValue(e.TestCaseId, out attachmentSets))
                    {
                        attachmentSets = new Collection <AttachmentSet>();
                        this.attachmentsCache.Add(e.TestCaseId, attachmentSets);
                    }

                    foreach (var attachment in attachments)
                    {
                        attachmentSets.Add(attachment);
                    }
                }
            }
        }
Esempio n. 19
0
        /// <inheritdoc/>
        public Collection <AttachmentSet> TestCaseEnded(TestCaseEndEventArgs testCaseEndEventArgs)
        {
            if (!this.isDataCollectionEnabled)
            {
                return(new Collection <AttachmentSet>());
            }

            var context = new DataCollectionContext(this.dataCollectionEnvironmentContext.SessionDataCollectionContext.SessionId, testCaseEndEventArgs.TestElement);

            testCaseEndEventArgs.Context = context;

            this.SendEvent(testCaseEndEventArgs);

            List <AttachmentSet> result = null;

            try
            {
                result = this.attachmentManager.GetAttachments(testCaseEndEventArgs.Context);
            }
            catch (Exception ex)
            {
                if (EqtTrace.IsErrorEnabled)
                {
                    EqtTrace.Error("DataCollectionManager.TestCaseEnded: Failed to get attachments : {0}", ex);
                }

                return(new Collection <AttachmentSet>(result));
            }

            if (EqtTrace.IsVerboseEnabled)
            {
                this.LogAttachments(result);
            }

            return(new Collection <AttachmentSet>(result));
        }
Esempio n. 20
0
 private void OnTestCaseEndHandler(object sender, TestCaseEndEventArgs e)
 {
     this.frameworkHandle.RecordResult(e.TestResult);
 }
Esempio n. 21
0
 private void Events_TestCaseEnd(object sender, TestCaseEndEventArgs e)
 {
     this.logger.LogWarning(this.context.SessionDataCollectionContext, e.TestCaseName + " end " + DateTime.UtcNow.Ticks.ToString());
 }
Esempio n. 22
0
 private void EventsOnTestCaseEnd(object sender, TestCaseEndEventArgs e)
 {
     _logger.LogWarning(context.SessionDataCollectionContext, $"Test Case End: {e.TestCaseName}");
     _testNames.Add(e.TestElement.FullyQualifiedName);
 }
Esempio n. 23
0
 private void Events_TestCaseEnd(object sender, TestCaseEndEventArgs e)
 {
     this.logger.LogWarning(this.context.SessionDataCollectionContext, "TestCaseEnded " + e.TestCaseName);
 }
 private void TriggerTestCaseEnd(object sender, TestCaseEndEventArgs e)
 {
     this.testCaseEndCalled++;
 }
 private void TestCaseEndMessageHandler(object sender, TestCaseEndEventArgs e)
 {
     this.isEventRaised = true;
 }