public void RecordResult(TestResult testResult) { _monitor.RecordResult(testResult.Convert()); _monitor.RecordMessage(Common.Models.TestMessageLevel.Informational, " " + testResult.Outcome.ToString().PadRight(_outcomeLength) + testResult.TestCase.FullyQualifiedName); }
private bool TryLoadExecutor(string adapterSource, string extensionUri, out ITestExecutor testExecutor) { testExecutor = null; try { _monitor.RecordMessage(TestMessageLevel.Informational, $">> Loading assembly from {adapterSource}..."); var assembly = Assembly.LoadFrom(adapterSource); var implementers = assembly.FindImplementers <ITestExecutor>(); foreach (var implementer in implementers) { try { var uriAttribute = implementer.GetCustomAttribute <ExtensionUriAttribute>(); if (uriAttribute == null || !StringComparer.OrdinalIgnoreCase.Equals(uriAttribute.ExtensionUri, extensionUri)) { continue; } testExecutor = Activator.CreateInstance(implementer) as ITestExecutor; _monitor.RecordMessage(TestMessageLevel.Informational, $"|| Loaded executor: {implementer.FullName}"); break; } catch (Exception e) { _monitor.RecordMessage(TestMessageLevel.Warning, $"|| Could not load executor {implementer.FullName}.\r\n{e.GetDescription()}"); } } _monitor.RecordMessage(TestMessageLevel.Informational, $"<< Assembly loaded."); } catch (Exception e) { _monitor.RecordMessage(TestMessageLevel.Error, $"<< Could not load assembly {adapterSource}!\r\n{e.GetDescription()}"); } return(testExecutor != null); }