public MolsController( ILogger <MolsController> logger, SqlConnection dapper, InnerBus innerBus ) { _logger = logger; this.dapper = dapper; this.innerBus = innerBus; }
public bool QueueMessage(IMessageSinkMessage message) { var testFailed = message as ITestFailed; if (testFailed != null) { var exceptionType = testFailed.ExceptionTypes.FirstOrDefault(); bool shouldBeSkipped = exceptionType == typeof(SkipTestException).FullName; if (!shouldBeSkipped) { try { IAttributeInfo[] skippableAttributes = testFailed.Test.TestCase.TestMethod.Method.GetCustomAttributes(typeof(SkippableFactAttribute)).ToArray(); if (skippableAttributes.Length > 0) { var attr = skippableAttributes[0]; string propertyName = attr.GetNamedArgument <string>(nameof(SkippableFactAttribute.SkipOnFailurePropertyName)); Type testClassType = testFailed.TestClass.Class.ToRuntimeType(); object classInstance = Activator.CreateInstance(testClassType, ConstructorArguments); for (Type type = testClassType; type != null; type = type.BaseType) { var property = type.GetProperty(propertyName); if (property != null) { shouldBeSkipped = (bool)property.GetValue(classInstance); break; } } } } catch { } } if (shouldBeSkipped) { DynamicallySkippedTestCount++; return(InnerBus.QueueMessage(new TestSkipped(testFailed.Test, testFailed.Messages.FirstOrDefault()))); } } // Nothing we care about, send it on its way return(InnerBus.QueueMessage(message)); }