/// <summary> /// Starts the process of running all the xUnit.net v1 tests. /// </summary> /// <param name="testCases">The test cases to run; if null, all tests in the assembly are run.</param> /// <param name="messageSink">The message sink to report results back to.</param> public void Run(IEnumerable <ITestCase> testCases, IMessageSink messageSink) { var results = new RunSummary(); var environment = String.Format("{0}-bit .NET {1}", IntPtr.Size * 8, Environment.Version); if (messageSink.OnMessage(new TestAssemblyStarting(assemblyFileName, configFileName, DateTime.Now, environment, TestFrameworkDisplayName))) { foreach (var testCollectionGroup in testCases.Cast <Xunit1TestCase>().GroupBy(tc => tc.TestCollection)) { var collectionResults = RunTestCollection(testCollectionGroup.Key, testCollectionGroup, messageSink); results.Aggregate(collectionResults); if (!collectionResults.Continue) { break; } } } messageSink.OnMessage(new TestAssemblyFinished(new Xunit1AssemblyInfo(assemblyFileName), results.Time, results.Total, results.Failed, results.Skipped)); }
RunSummary RunTestCollection(ITestCollection testCollection, IEnumerable <Xunit1TestCase> testCases, IMessageSink messageSink) { var results = new RunSummary(); results.Continue = messageSink.OnMessage(new TestCollectionStarting(testCollection)); if (results.Continue) { foreach (var testClassGroup in testCases.GroupBy(tc => tc.Class.Name)) { var classResults = RunTestClass(testCollection, testClassGroup.Key, testClassGroup.ToList(), messageSink); results.Aggregate(classResults); if (!classResults.Continue) { break; } } } results.Continue = messageSink.OnMessage(new TestCollectionFinished(testCollection, results.Time, results.Total, results.Failed, results.Skipped)) && results.Continue; return(results); }
RunSummary RunTestCollection(ITestCollection testCollection, IEnumerable<Xunit1TestCase> testCases, IMessageSink messageSink) { var results = new RunSummary(); results.Continue = messageSink.OnMessage(new TestCollectionStarting(testCollection)); if (results.Continue) foreach (var testClassGroup in testCases.GroupBy(tc => tc.Class.Name)) { var classResults = RunTestClass(testCollection, testClassGroup.Key, testClassGroup.ToList(), messageSink); results.Aggregate(classResults); if (!classResults.Continue) break; } results.Continue = messageSink.OnMessage(new TestCollectionFinished(testCollection, results.Time, results.Total, results.Failed, results.Skipped)) && results.Continue; return results; }
/// <summary> /// Starts the process of running all the xUnit.net v1 tests. /// </summary> /// <param name="testCases">The test cases to run; if null, all tests in the assembly are run.</param> /// <param name="messageSink">The message sink to report results back to.</param> public void Run(IEnumerable<ITestCase> testCases, IMessageSink messageSink) { var results = new RunSummary(); var environment = String.Format("{0}-bit .NET {1}", IntPtr.Size * 8, Environment.Version); if (messageSink.OnMessage(new TestAssemblyStarting(assemblyFileName, configFileName, DateTime.Now, environment, TestFrameworkDisplayName))) foreach (var testCollectionGroup in testCases.Cast<Xunit1TestCase>().GroupBy(tc => tc.TestCollection)) { var collectionResults = RunTestCollection(testCollectionGroup.Key, testCollectionGroup, messageSink); results.Aggregate(collectionResults); if (!collectionResults.Continue) break; } messageSink.OnMessage(new TestAssemblyFinished(new Xunit1AssemblyInfo(assemblyFileName), results.Time, results.Total, results.Failed, results.Skipped)); }