TheEdge
TheEdge

Reputation: 9861

Why am I getting "OneTimeSetUp: No suitable constructor was found..."?

I am using NUnit3 and trying to make use of TestFixtureSource in the following class hierarchy:

public class AtataTestFixtureData
{
    public static IEnumerable FixtureParams
    {
        get
        {
            yield return new TestFixtureData(new AtataConfigContainer
                                             {
                                                 AtataJsonConfig = new BaseAtataConfig()
                                             });
        }
    }
}

[TestFixtureSource(typeof(AtataConfigContainer), nameof(AtataTestFixtureData.FixtureParams))]
public class AtataTestsWithDbBase : OzCsTestsWithDbBase, IAtataAbpTests
{
    public AtataTestsWithDbBase()
    {

    }

    public AtataTestsWithDbBase(AtataConfigContainer aAtataConfigContainer)
    {
        AtataAbpTestsAdapter = AtataAbpTestsAdapter.Instance;
        AtataConfigContainer = aAtataConfigContainer;
    }
}

public class SomeSiteComAuTestsBase : AtataTestsWithDbBase
{
    public SomeSiteComAuTestsBase(AtataConfigContainer aAtataConfigContainer) : base(aAtataConfigContainer)
    {
    }
}

[TestFixture]
public class IndexTests : SomeSiteComAuTestsBase
{
    /// <summary>
    ///     Class constructor.
    /// </summary>
    public IndexTests(AtataConfigContainer aAtataConfigContainer) : base(aAtataConfigContainer)
    {
    }

    [Test]
    public void Get()
    {
        //Arrange

        //Act
        IndexPageObject indexPage = Go.To<IndexPageObject>();

        //Assert
    }
}   

When I run IndexTests.Get() I get the exception OneTimeSetUp: No suitable constructor was found but according to public IndexTests(AtataConfigContainer aAtataConfigContainer) : base(aAtataConfigContainer) I have the needed constructor.

What am I missing here?

Upvotes: 2

Views: 675

Answers (1)

Rob Prouse
Rob Prouse

Reputation: 22647

You are getting this error because your IndexTests class has a constructor that takes parameters, but your TestFixtureSource is on a base class. The TestFixtureSource needs to be on your IndexTests. The TestFixtureSource attribute is not inherited.

Upvotes: 1

Related Questions