public void ExecuteOnlyOnce_WhenRetriestCountSetToTwoAndNoFailedTestsPresent() { var log = Mock.Create <ILog>(); Mock.Arrange(() => log.Info(Arg.AnyString)); var consoleArgumentsProvider = Mock.Create <IConsoleArgumentsProvider>(); var newFileName = Path.GetTempFileName(); Mock.Arrange(() => consoleArgumentsProvider.NewTestResultPath).Returns(newFileName); Mock.Arrange(() => consoleArgumentsProvider.TestResultPath).Returns("NoExceptions.trx"); Mock.Arrange(() => consoleArgumentsProvider.ConsoleArguments).Returns("ipconfig"); Mock.Arrange(() => consoleArgumentsProvider.RetriesCount).Returns(2); var processExecutionProvider = Mock.Create <IProcessExecutionProvider>(); Mock.Arrange(() => processExecutionProvider.ExecuteProcessWithAdditionalArguments(string.Empty)).DoNothing(); Mock.Arrange(() => processExecutionProvider.CurrentProcessWaitForExit()).DoNothing(); var fileSystemProvider = Mock.Create <IFileSystemProvider>(); Mock.Arrange(() => fileSystemProvider.SerializeTestRun(Arg.IsAny <TestRun>())).DoNothing(); var testRun = new TestRun(); var testRunUnitTestResult = new TestRunUnitTestResult() { Outcome = "Passed" }; testRun.Results = new TestRunUnitTestResult[] { testRunUnitTestResult, testRunUnitTestResult }; testRun.ResultSummary = new TestRunResultSummary(); testRun.ResultSummary.Outcome = "Passed"; Mock.Arrange(() => fileSystemProvider.DeserializeTestRun(Arg.AnyString)).Returns(testRun); var microsoftTestRunProvider = Mock.Create <IMsTestTestRunProvider>(); Mock.Arrange(() => microsoftTestRunProvider.GetAllPassesTests(Arg.IsAny <TestRun>())).DoNothing(); Mock.Arrange(() => microsoftTestRunProvider.UpdatePassedTests(Arg.IsAny <List <TestRunUnitTestResult> >(), Arg.IsAny <List <TestRunUnitTestResult> >())).DoNothing(); Mock.Arrange(() => microsoftTestRunProvider.UpdateResultsSummary(Arg.IsAny <TestRun>())).DoNothing(); Mock.Arrange(() => microsoftTestRunProvider.GetAllNotPassedTests(Arg.IsAny <List <TestRunUnitTestResult> >())).Returns(new List <TestRunUnitTestResult>() { }); Mock.Arrange(() => microsoftTestRunProvider.GenerateAdditionalArgumentsForFailedTestsRun(Arg.IsAny <List <TestRunUnitTestResult> >(), Arg.AnyString)).DoNothing(); var engine = new TestExecutionService( microsoftTestRunProvider, fileSystemProvider, processExecutionProvider, consoleArgumentsProvider, log); var result = engine.ExecuteWithRetry(); Mock.Assert(() => processExecutionProvider.ExecuteProcessWithAdditionalArguments(Arg.AnyString), Occurs.Once()); Mock.Assert(() => fileSystemProvider.DeserializeTestRun(Arg.AnyString), Occurs.Once()); Mock.Assert(() => microsoftTestRunProvider.GenerateAdditionalArgumentsForFailedTestsRun(Arg.IsAny <List <TestRunUnitTestResult> >(), Arg.AnyString), Occurs.Never()); Mock.Assert(() => microsoftTestRunProvider.GetAllPassesTests(Arg.IsAny <TestRun>()), Occurs.Never()); Mock.Assert(() => microsoftTestRunProvider.UpdatePassedTests(Arg.IsAny <List <TestRunUnitTestResult> >(), Arg.IsAny <List <TestRunUnitTestResult> >()), Occurs.Never()); Mock.Assert(() => microsoftTestRunProvider.UpdateResultsSummary(Arg.IsAny <TestRun>()), Occurs.Never()); Mock.Assert(() => fileSystemProvider.SerializeTestRun(Arg.IsAny <TestRun>()), Occurs.Exactly(1)); Assert.AreEqual <int>(0, result); }
private TestStepErrorDTO GetErrorInStep(TestRunUnitTestResult test, string stepResults = " ") { TestStepErrorDTO erro = null; var resultStepIsError = (!string.IsNullOrEmpty(stepResults)) && (stepResults.IndexOf(ExtendReportConsts.Error) >= 0); var outPutStepIsError = test.Output != null && test.Output.ErrorInfo != null; if (resultStepIsError) { erro = new TestStepErrorDTO() { Message = stepResults.Replace(ExtendReportConsts.Error, string.Empty) } } ; if (outPutStepIsError) { if (erro == null) { erro = new TestStepErrorDTO() { Message = test.Output.ErrorInfo.Message, StackTrace = test.Output.ErrorInfo.StackTrace } } ; else { erro.StackTrace = test.Output.ErrorInfo.StackTrace; } } return(erro); }