public static List <TestExecutionResult> ExecuteTests(DotNet dotnet, DirectoryInfo workingDirectory, List <TestInfo> tests, Action <TestExecutionResult> AfterEachTest)
        {
            var results = new List <TestExecutionResult>();
            var originalCurrentDirectory = Directory.GetCurrentDirectory();

            foreach (var test in tests)
            {
                var newDirectory = new DirectoryInfo(Path.Combine(workingDirectory.FullName, Path.GetRandomFileName()));
                newDirectory.Create();

                var compileResult = CompileTest(dotnet, newDirectory, test);
                if (compileResult.Success)
                {
                    var testRan = ExecuteTest(test, dotnet, compileResult);
                    AfterEachTest(testRan);
                    results.Add(testRan);
                }
                else
                {
                    var failedToCompile = new TestExecutionResult(test, false, compileResult, null);
                    AfterEachTest(failedToCompile);
                    results.Add(failedToCompile);
                }
            }

            Directory.SetCurrentDirectory(originalCurrentDirectory);

            return(results);
        }
예제 #2
0
 public static void PrintTestResult(TestExecutionResult result, TextWriter output)
 {
     if (result.Success)
     {
         output.WriteLine("Pass:   "******"FAILED: " + result.Test.File);
     }
 }