コード例 #1
0
        public void PublishStandardErrorLogWithMultiupleResultsIsSuccessful()
        {
            SetupMocks();
            ResetValues();

            TestCaseResultData testResultWithStandardError1 = new TestCaseResultData();

            testResultWithStandardError1.AttachmentData = new AttachmentData();
            testResultWithStandardError1.AttachmentData.StandardError = "Publish standard error is successfully logged for result 1";

            TestCaseResultData testResultWithStandardError2 = new TestCaseResultData();

            testResultWithStandardError2.AttachmentData = new AttachmentData();
            testResultWithStandardError2.AttachmentData.StandardError = "Publish standard error is successfully logged for result 2";

            TestCaseResultData testResultWithNoStandardError = new TestCaseResultData();

            testResultWithNoStandardError.AttachmentData = new AttachmentData();
            testResultWithNoStandardError.AttachmentData.StandardError = "";

            TestCaseResultData testResultDefault = new TestCaseResultData();

            testResultDefault.AttachmentData = new AttachmentData();

            List <TestCaseResultData> testResults = new List <TestCaseResultData>()
            {
                testResultWithStandardError1, testResultWithStandardError2, testResultWithNoStandardError, testResultDefault
            };

            // execute publish task
            _testRunData = _publisher.ReadResultsFromFile(_testRunContext, "filepath");
            _publisher.StartTestRunAsync(_testRunData).Wait();
            var testRun = new TestRun {
                Id = 1
            };

            _publisher.AddResultsAsync(testRun, testResults.ToArray()).Wait();
            _publisher.EndTestRunAsync(_testRunData, 1).Wait();

            // validate
            Assert.Equal(_resultsLevelAttachments.Count, 2);
            Assert.Equal(_resultsLevelAttachments[1].Count, 1);
            Assert.Equal(_resultsLevelAttachments[2].Count, 1);
            Assert.Equal(_resultsLevelAttachments[1][0].AttachmentType, AttachmentType.ConsoleLog.ToString());
            Assert.Equal(_resultsLevelAttachments[2][0].AttachmentType, AttachmentType.ConsoleLog.ToString());

            string encodedData1 = _resultsLevelAttachments[1][0].Stream;

            byte[] bytes1       = Convert.FromBase64String(encodedData1);
            string decodedData1 = System.Text.Encoding.UTF8.GetString(bytes1);

            Assert.Equal(decodedData1, testResultWithStandardError1.AttachmentData.StandardError);

            string encodedData2 = _resultsLevelAttachments[2][0].Stream;

            byte[] bytes2       = Convert.FromBase64String(encodedData2);
            string decodedData2 = System.Text.Encoding.UTF8.GetString(bytes2);

            Assert.Equal(decodedData2, testResultWithStandardError2.AttachmentData.StandardError);
        }
コード例 #2
0
        public void SystemInformationFileUploadsWithCorrectAttachmentType()
        {
            SetupMocks();
            File.WriteAllText("SystemInformation.xml", "asdf");
            ResetValues();

            _testRunData = _publisher.ReadResultsFromFile(_testRunContext, "filepath");
            _publisher.StartTestRunAsync(_testRunData).Wait();
            TestCaseResultData result = new TestCaseResultData();

            result.AttachmentData = new AttachmentData();
            result.AttachmentData.AttachmentsFilePathList = new string[] { "SystemInformation.xml" };
            var testRun = new TestRun {
                Id = 1
            };

            _publisher.AddResultsAsync(testRun, new TestCaseResultData[] { result }).Wait();
            Assert.Equal(_resultsLevelAttachments.Count, 1);
            Assert.Equal(_resultsLevelAttachments[1].Count, 1);
            Assert.Equal(_resultsLevelAttachments[1][0].AttachmentType, AttachmentType.IntermediateCollectorData.ToString());
            try
            {
                File.Delete("SystemInformation.xml");
            }
            catch
            { }
        }
コード例 #3
0
        public void AddResultsWithSubResultsAttachmentsCallsRightApi()
        {
            SetupMocks();

            //Add results
            _testRunData = _publisher.ReadResultsFromFile(_testRunContext, "filepath");
            _publisher.StartTestRunAsync(_testRunData);
            var result = new TestCaseResultData();

            result.TestCaseSubResultData = new List <TestCaseSubResultData> {
                new TestCaseSubResultData()
            };
            var testRun = new TestRun {
                Id = 1
            };

            result.TestCaseSubResultData[0].AttachmentData = new AttachmentData();
            result.TestCaseSubResultData[0].AttachmentData.AttachmentsFilePathList = new string[] { "attachment.txt" };
            _publisher.AddResultsAsync(testRun, new TestCaseResultData[] { result }).Wait();

            Assert.Equal(_subResultsLevelAttachments.Count, 1);
            Assert.Equal(_subResultsLevelAttachments[1].Count, 1);
            Assert.Equal(_subResultsLevelAttachments[1][1].Count, 1);
            Assert.Equal(_subResultsLevelAttachments[1][1][0].AttachmentType, AttachmentType.GeneralAttachment.ToString());
            Assert.Equal(_subResultsLevelAttachments[1][1][0].Comment, "");
            Assert.Equal(_subResultsLevelAttachments[1][1][0].FileName, "attachment.txt");
        }
コード例 #4
0
        public void TrxFileUploadsWithCorrectAttachmentType()
        {
            SetupMocks();
            File.WriteAllText("sampleTrx.trx", "asdf");
            ResetValues();

            _testRunData = _publisher.ReadResultsFromFile(_testRunContext, "filepath");
            _publisher.StartTestRunAsync(_testRunData).Wait();
            var result  = new TestCaseResultData();
            var testRun = new TestRun {
                Id = 1
            };

            result.AttachmentData = new AttachmentData();
            result.AttachmentData.AttachmentsFilePathList = new string[] { "sampleTrx.trx" };
            _publisher.AddResultsAsync(testRun, new TestCaseResultData[] { result }).Wait();
            Assert.Equal(_resultsLevelAttachments.Count, 1);
            Assert.Equal(_resultsLevelAttachments[1].Count, 1);
            Assert.Equal(_resultsLevelAttachments[1][0].AttachmentType, AttachmentType.TmiTestRunSummary.ToString());
            try
            {
                File.Delete("sampleTrx.trx");
            }
            catch
            { }
        }
コード例 #5
0
        public void HavingColonInAttachmentFileNameIsReplaced()
        {
            SetupMocks();
            File.WriteAllText("colon:1:2:3.trx", "asdf");
            ResetValues();

            _testRunData = _publisher.ReadResultsFromFile(_testRunContext, "filepath");
            _publisher.StartTestRunAsync(_testRunData).Wait();
            var result  = new TestCaseResultData();
            var testRun = new TestRun {
                Id = 1
            };

            result.AttachmentData = new AttachmentData();
            result.AttachmentData.AttachmentsFilePathList = new string[] { "colon:1:2:3.trx" };
            _publisher.AddResultsAsync(testRun, new TestCaseResultData[] { result }).Wait();

            Assert.Equal("colon_1_2_3.trx", _resultsLevelAttachments[1][0].FileName);

            try
            {
                File.Delete("colon:1:2:3.trx");
            }
            catch
            { }
        }
コード例 #6
0
        public void TestImpactFileUploadsWithCorrectAttachmentType()
        {
            SetupMocks();
            File.WriteAllText("testimpact.xml", "asdf");
            ResetValues();

            _testRunData = _publisher.ReadResultsFromFile(_testRunContext, "filepath");
            _publisher.StartTestRunAsync(_testRunData).Wait();
            var result  = new TestCaseResultData();
            var testRun = new TestRun {
                Id = 1
            };

            result.Attachments = new string[] { "testimpact.xml" };
            _publisher.AddResultsAsync(testRun, new TestCaseResultData[] { result }).Wait();
            Assert.Equal(_resultsLevelAttachments.Count, 1);
            Assert.Equal(_resultsLevelAttachments[1].Count, 1);
            Assert.Equal(_resultsLevelAttachments[1][0].AttachmentType, AttachmentType.TestImpactDetails.ToString());
            try
            {
                File.Delete("testimpact.xml");
            }
            catch
            { }
        }
コード例 #7
0
        public void AddResultsWithMultiHierarchySubResultsExceedMaxLevel()
        {
            SetupMocks();

            //Add results
            _testRunData = _publisher.ReadResultsFromFile(_testRunContext, "filepath");
            _publisher.StartTestRunAsync(_testRunData);
            var result  = new TestCaseResultData();
            var testRun = new TestRun {
                Id = 1
            };

            result.Outcome = "Failed";
            result.TestCaseSubResultData = new List <TestCaseSubResultData>();
            var mockSubResult = new TestCaseSubResultData()
            {
                Outcome       = "Failed",
                SubResultData = new List <TestCaseSubResultData>()
                {
                    new TestCaseSubResultData()
                    {
                        Outcome       = "Failed",
                        SubResultData = new List <TestCaseSubResultData>()
                        {
                            new TestCaseSubResultData()
                            {
                                Outcome       = "Failed",
                                SubResultData = new List <TestCaseSubResultData>()
                                {
                                    new TestCaseSubResultData()
                                    {
                                        Outcome = "Failed"
                                    }
                                }
                            }
                        }
                    }
                }
            };

            for (int i = 0; i < 1010; i++)
            {
                result.TestCaseSubResultData.Add(mockSubResult);
            }
            _publisher.AddResultsAsync(testRun, new TestCaseResultData[] { result }).Wait();

            // validate
            foreach (TestCaseResult resultCreateModel in _resultCreateModels)
            {
                Assert.Equal(resultCreateModel.SubResults.Count, 1000);
                Assert.Equal(resultCreateModel.SubResults[0].SubResults[0].SubResults.Count, 1);
                Assert.Null(resultCreateModel.SubResults[0].SubResults[0].SubResults[0].SubResults);
            }
        }
コード例 #8
0
        public void VerifyPublishTaskErrorIfFailTaskIsTrueAndThereAreFailedTestsInMultipleResultFiles()
        {
            SetupMocks();
            var resultCommand = new ResultsCommandExtension();

            resultCommand.Initialize(_hc);
            var command = new Command("results", "publish");

            command.Properties.Add("resultFiles", "file1.trx,file2.trx");
            command.Properties.Add("type", "NUnit");
            command.Properties.Add("mergeResults", bool.TrueString);
            command.Properties.Add("failTaskOnFailedTests", bool.TrueString);
            var resultsFiles = new List <string> {
                "file1.trx", "file2.trx"
            };

            var testRunDataPassed = new TestRunData();
            var testRunDataFailed = new TestRunData();

            var passedTest = new TestCaseResultData();

            passedTest.Outcome = TestOutcome.Passed.ToString();

            var failedTest = new TestCaseResultData();

            failedTest.Outcome = TestOutcome.Failed.ToString();

            testRunDataPassed.Results     = new TestCaseResultData[] { passedTest };
            testRunDataPassed.Attachments = new string[] { "attachment1", "attachment2" };
            testRunDataFailed.Results     = new TestCaseResultData[] { failedTest };
            testRunDataPassed.Attachments = new string[] { "attachment1", "attachment2" };

            _mockTestRunPublisher.Setup(q => q.StartTestRunAsync(It.IsAny <TestRunData>(), It.IsAny <CancellationToken>()))
            .Callback((TestRunData trd, CancellationToken cancellationToken) =>
            {
                Assert.Equal(resultsFiles.Count * testRunDataPassed.Attachments.Length, trd.Attachments.Length);
            });
            _mockTestRunPublisher.Setup(q => q.AddResultsAsync(It.IsAny <TestRun>(), It.IsAny <TestCaseResultData[]>(), It.IsAny <CancellationToken>()))
            .Callback((TestRun testRun, TestCaseResultData[] tcrd, CancellationToken cancellationToken) =>
            {
                Assert.Equal(resultsFiles.Count * testRunDataPassed.Results.Length, tcrd.Length);
            });
            _mockTestRunPublisher.Setup(q => q.ReadResultsFromFile(It.IsAny <TestRunContext>(), "file1.trx"))
            .Returns(testRunDataPassed);
            _mockTestRunPublisher.Setup(q => q.ReadResultsFromFile(It.IsAny <TestRunContext>(), "file2.trx"))
            .Returns(testRunDataFailed);
            _mockTestRunPublisher.Setup(q => q.EndTestRunAsync(It.IsAny <TestRunData>(), It.IsAny <int>(), It.IsAny <bool>(), It.IsAny <CancellationToken>()))
            .Returns(Task.CompletedTask);

            resultCommand.ProcessCommand(_ec.Object, command);

            Assert.Equal(1, _errors.Count());
        }
コード例 #9
0
        public void PublishConsoleLogIsSuccessful()
        {
            SetupMocks();
            ResetValues();

            TestCaseResultData testResultWithLog = new TestCaseResultData();

            testResultWithLog.AttachmentData            = new AttachmentData();
            testResultWithLog.AttachmentData.ConsoleLog = "Publish console log is successfully logged";

            TestCaseResultData testResultWithNoLog = new TestCaseResultData();

            testResultWithNoLog.AttachmentData            = new AttachmentData();
            testResultWithNoLog.AttachmentData.ConsoleLog = "";

            TestCaseResultData testResultDefault = new TestCaseResultData();

            testResultDefault.AttachmentData = new AttachmentData();

            List <TestCaseResultData> testResults = new List <TestCaseResultData>()
            {
                testResultWithLog, testResultWithNoLog, testResultDefault
            };

            // execute publish task
            _testRunData = _publisher.ReadResultsFromFile(_testRunContext, "filepath");
            _publisher.StartTestRunAsync(_testRunData).Wait();
            var testRun = new TestRun {
                Id = 1
            };

            _publisher.AddResultsAsync(testRun, testResults.ToArray()).Wait();
            _publisher.EndTestRunAsync(_testRunData, 1).Wait();

            // validate
            Assert.Equal(_resultsLevelAttachments.Count, 1);
            Assert.Equal(_resultsLevelAttachments[1].Count, 1);
            Assert.Equal(_resultsLevelAttachments[1][0].AttachmentType, AttachmentType.ConsoleLog.ToString());
            string encodedData = _resultsLevelAttachments[1][0].Stream;

            byte[] bytes       = Convert.FromBase64String(encodedData);
            string decodedData = System.Text.Encoding.UTF8.GetString(bytes);

            Assert.Equal(decodedData, testResultWithLog.AttachmentData.ConsoleLog);
        }
コード例 #10
0
        public void VerifyStartEndTestRunTimeWhenPublishingToSingleTestRun()
        {
            SetupMocks();
            var resultCommand = new ResultsCommandExtension();

            resultCommand.Initialize(_hc);
            var command = new Command("results", "publish");

            command.Properties.Add("resultFiles", "file1.trx,file2.trx");
            command.Properties.Add("type", "NUnit");
            command.Properties.Add("mergeResults", bool.TrueString);
            var resultsFiles = new List <string> {
                "file1.trx", "file2.trx"
            };
            var durationInMs       = 10;
            var testRunData        = new TestRunData();
            var testCaseResultData = new TestCaseResultData();

            testCaseResultData.DurationInMs = durationInMs;

            testRunData.Results     = new TestCaseResultData[] { testCaseResultData, testCaseResultData };
            testRunData.Attachments = new string[] { "attachment1", "attachment2" };

            _mockTestRunPublisher.Setup(q => q.StartTestRunAsync(It.IsAny <TestRunData>(), It.IsAny <CancellationToken>()))
            .Callback((TestRunData trd, CancellationToken cancellationToken) =>
            {
                var startedDate = DateTime.Parse(trd.StartDate, null, DateTimeStyles.RoundtripKind);
                var endedDate   = DateTime.Parse(trd.CompleteDate, null, DateTimeStyles.RoundtripKind);
                Assert.Equal(resultsFiles.Count * testRunData.Results.Length * durationInMs, (endedDate - startedDate).TotalMilliseconds);
            });
            _mockTestRunPublisher.Setup(q => q.AddResultsAsync(It.IsAny <TestRun>(), It.IsAny <TestCaseResultData[]>(), It.IsAny <CancellationToken>()))
            .Callback((TestRun testRun, TestCaseResultData[] tcrd, CancellationToken cancellationToken) =>
            {
            });
            _mockTestRunPublisher.Setup(q => q.ReadResultsFromFile(It.IsAny <TestRunContext>(), It.IsAny <string>()))
            .Returns(testRunData);
            _mockTestRunPublisher.Setup(q => q.EndTestRunAsync(It.IsAny <TestRunData>(), It.IsAny <int>(), It.IsAny <bool>(), It.IsAny <CancellationToken>()))
            .Returns(Task.CompletedTask);

            resultCommand.ProcessCommand(_ec.Object, command);
        }