예제 #1
0
        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);
            }
        }