public void Run() { var assemblyLoader = new AssemblyLoader(this.assemblyPath); var assembly = assemblyLoader.Assembly; var testMethodLoader = new TestMethodLoader(assembly); var testContainers = testMethodLoader.LoadTestMethods(); foreach (var testContainer in testContainers) { var instance = Activator.CreateInstance(testContainer.Key); var testMethods = testContainer.Value; foreach (MethodInfo testMethod in testMethods) { var testType = this.GetTestType(testMethod); var testRunner = TestRunnerFactory.GetTestRunner( testType, testMethod, instance); testRunner.RunTest(); this.LogTestResult(testRunner, testMethod); } } }