Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }