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); }
public static void PrintTestResult(TestExecutionResult result, TextWriter output) { if (result.Success) { output.WriteLine("Pass: "******"FAILED: " + result.Test.File); } }