private static bool ExecuteMethods <T>(ITest tests, ITestFilter testRunnerFilter, AttributeFinderBase attributeFinder, string logString, Action <T> action, RuntimePlatform?testTargetPlatform) { var exceptionsThrown = false; if (testTargetPlatform == null) { Debug.LogError("Could not determine test target platform from build target " + EditorUserBuildSettings.activeBuildTarget); return(true); } foreach (var targetClassType in attributeFinder.Search(tests, testRunnerFilter, testTargetPlatform.Value)) { try { var targetClass = (T)Activator.CreateInstance(targetClassType); Debug.LogFormat(logString, targetClassType.FullName); using (var logScope = new LogScope()) { action(targetClass); if (logScope.AnyFailingLogs()) { var failingLog = logScope.FailingLogs.First(); throw new UnhandledLogMessageException(failingLog); } if (logScope.ExpectedLogs.Any()) { var expectedLogs = logScope.ExpectedLogs.First(); throw new UnexpectedLogMessageException(expectedLogs); } } } catch (InvalidCastException) {} catch (Exception e) { Debug.LogException(e); exceptionsThrown = true; } } return(exceptionsThrown); }
private static bool ExecuteMethods <T>(ITest tests, ITestFilter testRunnerFilter, AttributeFinderBase attributeFinder, string logString, Action <T> action, RuntimePlatform?testTargetPlatform) { var exceptionsThrown = false; if (testTargetPlatform == null) { Debug.LogError("Could not determine test target platform from build target " + EditorUserBuildSettings.activeBuildTarget); return(true); } foreach (var targetClassType in attributeFinder.Search(tests, testRunnerFilter, testTargetPlatform.Value)) { try { var targetClass = (T)Activator.CreateInstance(targetClassType); Debug.LogFormat(logString, targetClassType.FullName); action(targetClass); } catch (InvalidCastException) {} catch (Exception e) { Debug.LogException(e); exceptionsThrown = true; } } return(exceptionsThrown); }