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); }
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 { } }
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"); }
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 { } }
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 { } }
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 { } }
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); } }
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()); }
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); }
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); }