public IEnumerable <IXunitTestCase> Discover( ITestFrameworkDiscoveryOptions discoveryOptions, ITestMethod testMethod, IAttributeInfo factAttribute) { var skipReason = EvaluateSkipConditions(testMethod); var isTheory = false; IXunitTestCaseDiscoverer innerDiscoverer; if (testMethod.Method.GetCustomAttributes(typeof(TheoryAttribute)).Any()) { isTheory = true; innerDiscoverer = new TheoryDiscoverer(_diagnosticMessageSink); } else { innerDiscoverer = new FactDiscoverer(_diagnosticMessageSink); } var testCases = innerDiscoverer .Discover(discoveryOptions, testMethod, factAttribute) .Select(testCase => new SkipReasonTestCase(isTheory, skipReason, testCase)); return(testCases); }
public async void FactWithoutParameters_ReturnsTestCaseThatRunsFact() { var discoverer = new FactDiscoverer(); var testMethod = Mocks.TestMethod <ClassUnderTest>("FactWithNoParameters"); var testCases = await discoverer.Discover(options, testMethod, factAttribute); var testCase = Assert.Single(testCases); await testCase.RunAsync(messageBus, new object[0], aggregator, cancellationTokenSource); Assert.Single(messageBus.Messages.OfType <_TestPassed>()); }
public async void GenericFact_ReturnsTestCaseWhichThrows() { var discoverer = new FactDiscoverer(); var testMethod = Mocks.TestMethod <ClassUnderTest>("GenericFact"); var testCases = await discoverer.Discover(options, testMethod, factAttribute); var testCase = Assert.Single(testCases); await testCase.RunAsync(messageBus, new object[0], aggregator, cancellationTokenSource); var failed = Assert.Single(messageBus.Messages.OfType <_TestFailed>()); Assert.Equal(typeof(InvalidOperationException).FullName, failed.ExceptionTypes.Single()); Assert.Equal("[Fact] methods are not allowed to be generic.", failed.Messages.Single()); }
public async void FactWithParameters_ReturnsTestCaseWhichThrows() { var discoverer = new FactDiscoverer(); var testMethod = Mocks.TestMethod(typeof(ClassUnderTest), "FactWithParameters"); var testCases = discoverer.Discover(options, testMethod, factAttribute); var testCase = Assert.Single(testCases); await testCase.RunAsync(messageBus, new object[0], aggregator, cancellationTokenSource); var failed = Assert.Single(messageBus.Messages.OfType <ITestFailed>()); Assert.Equal(typeof(InvalidOperationException).FullName, failed.ExceptionTypes.Single()); Assert.Equal("[Fact] methods are not allowed to have parameters. Did you mean to use [Theory]?", failed.Messages.Single()); }
public StaFactDiscoverer(IMessageSink diagnosticMessageSink) { factDiscoverer = new FactDiscoverer(diagnosticMessageSink); }
public WpfFactDiscoverer(IMessageSink diagnosticMessageSink) { _factDiscoverer = new FactDiscoverer(diagnosticMessageSink); }
/// <summary> /// Creates a new instance of the <see cref="ScenarioAttributeDiscoverer"/> type. /// </summary> /// <param name="diagnosticMessageSink"> The message sink used to send diagnostic messages. </param> public ScenarioAttributeDiscoverer(IMessageSink diagnosticMessageSink) { DecoratedDiscoverer = new FactDiscoverer(diagnosticMessageSink); MessageSink = diagnosticMessageSink ?? throw new ArgumentNullException(nameof(diagnosticMessageSink)); }
public RemoteHostFactDiscoverer(IMessageSink diagnosticMessageSink) { _factDiscoverer = new FactDiscoverer(diagnosticMessageSink); }
/// <summary> /// Initialises a new instance of the <see cref="UserFactDiscoverer"/> class. /// </summary> /// <param name="diagnosticMessageSink">The message sink used to send diagnostic messages</param> public UserFactDiscoverer(IMessageSink diagnosticMessageSink) { this.diagnosticMessageSink = diagnosticMessageSink; factDiscoverer = new FactDiscoverer(diagnosticMessageSink); }
public ForegroundFactDiscoverer(IMessageSink diagnosticMessageSink) { _inner = new FactDiscoverer(diagnosticMessageSink); }