private void ExecuteTestAssembly(TestAssembly testAssembly) { this.TestListeners.BeforeAssembly(testAssembly); // run assemblysetup System.Runtime.CompilerServices.RuntimeHelpers.PrepareConstrainedRegions(); try { if (this.RunAssemblySetUp(testAssembly)) { foreach (IFixture fixture in testAssembly.Fixtures) { using (FixtureRunner runner = new FixtureRunner( fixture, testAssembly.GetTestCasesFromFixture(fixture), this.TestListeners) ) { runner.Run(); } // collect GC GC.WaitForPendingFinalizers(); GC.Collect(); } } } finally { // run assembly teardown this.RunAssemblyTearDown(testAssembly); this.TestListeners.AfterAssembly(testAssembly); } }