public void XUnit2TestGeneratorProvider_WithFeatureWithMatchingTag_ShouldAddNonParallelizableCollectionAttribute() { // ARRANGE var document = ParseDocumentFromString(@" @nonparallelizable Feature: Sample feature file Scenario: Simple scenario Given there is something"); var provider = new XUnit2TestGeneratorProvider(new CodeDomHelper(CodeDomProviderLanguage.CSharp), new ProjectSettings() { DefaultNamespace = "Target" }); var featureGenerator = provider.CreateFeatureGenerator(addNonParallelizableMarkerForTags: new string[] { "nonparallelizable" }); // ACT var code = featureGenerator.GenerateUnitTestFixture(document, "TestClassName", "Target.Namespace"); // ASSERT var attributes = code.Class().CustomAttributes().ToArray(); attributes.Should().ContainSingle(a => a.Name == XUnitCollectionAttribute); var collectionAttribute = attributes.Single(a => a.Name == XUnitCollectionAttribute); collectionAttribute.Arguments.Should().HaveCount(1); collectionAttribute.Arguments[0].Value.Should().BeEquivalentTo(new CodePrimitiveExpression("SpecFlowNonParallelizableFeatures")); }
public void XUnit2TestGeneratorProvider_WithFeatureWithNoMatchingTag_ShouldNotAddNonParallelizableCollectionAttribute() { // ARRANGE var document = ParseDocumentFromString(@" Feature: Sample feature file Scenario: Simple scenario Given there is something"); var provider = new XUnit2TestGeneratorProvider(new CodeDomHelper(CodeDomProviderLanguage.CSharp), new ProjectSettings() { DefaultNamespace = "Target" }); var featureGenerator = provider.CreateFeatureGenerator(addNonParallelizableMarkerForTags: new string[] { "nonparallelizable" }); // ACT var code = featureGenerator.GenerateUnitTestFixture(document, "TestClassName", "Target.Namespace"); // ASSERT var attributes = code.Class().CustomAttributes().ToArray(); attributes.Should().NotContain(a => a.Name == XUnitCollectionAttribute); }