public virtual TestRunState Run(IEnumerable <ITestCase> testCases = null, TestRunState initialRunState = TestRunState.NoTests) { try { if (testCases != null) { testCases = testCases.ToList(); } var visitor = new ResultVisitor(testListener) { TestRunState = initialRunState }; toDispose.Push(visitor); var executionOptions = TestFrameworkOptions.ForExecution(configuration); if (testCases == null) { xunit.RunAll(visitor, TestFrameworkOptions.ForDiscovery(configuration), executionOptions); } else { xunit.RunTests(testCases, visitor, executionOptions); } visitor.Finished.WaitOne(); return(visitor.TestRunState); } catch (Exception ex) { testListener.WriteLine("Error during test execution:\r\n" + ex, Category.Error); return(TestRunState.Error); } }
private static void ExecuteTests(string code, Action <MessageSink> assertions) { var assemblyName = TestAssemblyCompiler.Compile(code); var sink = new MessageSink(); using (var xunit2 = new Xunit2(new NullSourceInformationProvider(), assemblyName, null, false)) { xunit2.RunAll(sink, TestFrameworkOptions.ForDiscovery(), TestFrameworkOptions.ForExecution()); sink.WaitTillFinished(); assertions(sink); } }