public void SetupPersistentListeners(object runner) { UnityEventTools.AddPersistentListener((UnityEvent <ITest>)runner.GetType().GetField("testStartedEvent", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(runner), new UnityAction <ITest>(test => { if (!(test is TestMethod)) { return; } ourLogger.Verbose("TestStarted : {0}", test.FullName); var internalEvent = new TestInternalEvent(TestEventsSender.GetIdFromNUnitTest(test), test.Method.TypeInfo.Assembly.GetName().Name, "", 0, Status.Running, TestEventsSender.GetIdFromNUnitTest(test.Parent)); TestEventReceived(new TestEvent(EventType.TestStarted, internalEvent)); }) ); UnityEventTools.AddPersistentListener((UnityEvent <ITestResult>)runner.GetType().GetField("testFinishedEvent", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(runner), new UnityAction <ITestResult>(result => { if (!(result.Test is TestMethod)) { return; } var internalEvent = TestEventsSender.GetTestResult(result); TestEventReceived(new TestEvent(EventType.TestFinished, internalEvent)); })); UnityEventTools.AddPersistentListener((UnityEvent <ITestResult>)runner.GetType().GetField("runFinishedEvent", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(runner), new UnityAction <ITestResult>(result => { var internalEvent = new TestInternalEvent("", "", "", 0, Status.Success, ""); TestEventReceived(new TestEvent(EventType.RunFinished, internalEvent)); })); }
public TestEvent(EventType type, TestInternalEvent tEvent) { myType = type; Event = tEvent; }
internal static TestResult GetTestResult(TestInternalEvent tEvent) { return(new TestResult(tEvent.myID, tEvent.myAssemblyName, tEvent.myOutput, tEvent.myDuration, tEvent.myStatus, tEvent.myParentID)); }