public void RunTest() { loader.ReloadOnRun = false; LoadTest(assembly); loader.RunTest(((TestEventArgs)catcher.Events[3]).Test); while (loader.IsTestRunning) { Thread.Sleep(500); } Assert.AreEqual(40, catcher.Events.Count); Assert.AreEqual(TestAction.RunStarting, ((TestEventArgs)catcher.Events[4]).Action); Assert.AreEqual(TestAction.RunFinished, ((TestEventArgs)catcher.Events[39]).Action); int nTests = 0; int nRun = 0; foreach (object o in catcher.Events) { TestEventArgs e = o as TestEventArgs; if (e != null && e.Action == TestAction.TestFinished) { ++nTests; if (e.Result.Executed) { ++nRun; } } } Assert.AreEqual(MockAssembly.Tests, nTests); Assert.AreEqual(MockAssembly.Tests - MockAssembly.NotRun, nRun); }