protected override void FirstInvoke() { // Init loggers //TODO: Use correct logger LogMessage(new StartMessage(TestGranularity.TestGroup, _assembly.Name)); if (Provider.HasCapability(UnitTestProviderCapabilities.AssemblySupportsInitializeMethod) && _assembly.AssemblyInitializeMethod != null) { EnqueueMethodDispatcher(_assembly.AssemblyInitializeMethod); } // Add all test classes foreach (ITestClass testClass in _assembly.GetTestClasses()) { ITestWorkItem test = new TestClassDispatcher(TestHarness, testClass, _classInstances.GetInstance(testClass.Type), Provider); _testClasses.Enqueue(test); } Enqueue(_testClasses); // Assembly cleanup if (Provider.HasCapability(UnitTestProviderCapabilities.AssemblySupportsCleanupMethod) && _assembly.AssemblyCleanupMethod != null) { EnqueueMethodDispatcher(_assembly.AssemblyCleanupMethod); } Complete += delegate(object sender, EventArgs e) { LogMessage(new EndMessage(TestGranularity.TestGroup, _assembly.Name)); }; }