public void ExecuteOnlyOnce_WhenRetriestCountSetToOneAndNoFailedTestsPresent()
 {
     var log = Mock.Create<ILog>();
     Mock.Arrange(() => log.Info(Arg.AnyString));             
     var consoleArgumentsProvider = Mock.Create<IConsoleArgumentsProvider>();
     string newFileName = Path.GetTempFileName();
     Mock.Arrange(() => consoleArgumentsProvider.NewTestResultPath).Returns(newFileName);
     Mock.Arrange(() => consoleArgumentsProvider.TestResultPath).Returns("Exceptions.trx");
     Mock.Arrange(() => consoleArgumentsProvider.ConsoleArguments).Returns("ipconfig");
     Mock.Arrange(() => consoleArgumentsProvider.RetriesCount).Returns(1);
     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();
     TestRun 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);
     int result = engine.ExecuteWithRetry();
     Mock.Assert(() => fileSystemProvider.SerializeTestRun(Arg.IsAny<TestRun>()), Occurs.Exactly(1));
     Assert.AreEqual<int>(0, result);
 }
Example #2
0
 public static void Main(string[] args)
 {
     string microsoftTestConsoleExePath = ConfigurationManager.AppSettings["MSTestConsoleRunnerPath"]; 
     var consoleArgumentsProvider = new ConsoleArgumentsProvider(args);
     var engine = new TestExecutionService(
         new MsTestTestRunProvider(consoleArgumentsProvider, LogManager.GetLogger(typeof(MsTestTestRunProvider))),
         new FileSystemProvider(consoleArgumentsProvider),
         new ProcessExecutionProvider(microsoftTestConsoleExePath, consoleArgumentsProvider, LogManager.GetLogger(typeof(ProcessExecutionProvider))),
         consoleArgumentsProvider,
         LogManager.GetLogger(typeof(TestExecutionService)));
     try
     {
         int result = engine.ExecuteWithRetry();
         Environment.Exit(result);
     }
     catch (Exception ex)
     {
         log.Error(string.Concat(ex.Message, ex.StackTrace));
     }
 }