← Back to team overview

nunit-core team mailing list archive

[Bug 701331] Re: TestFixture attributes on base classes are not ignored

 

NOTE: Nunit 2.5.5 acts as expected

-- 
You received this bug notification because you are a member of NUnit
Developers, which is subscribed to NUnit V2.
https://bugs.launchpad.net/bugs/701331

Title:
  TestFixture attributes on base classes are not ignored

Status in NUnit V2 Test Framework:
  New

Bug description:
  Using Nunit 2.5.9 GUI Runner & 2.5.9 framework.

TestFixutre attributes on derived classes should replace any declared on superclasses, which is what is described in the documentation:

http://nunit.org/index.php?p=testFixture&r=2.5.9
----------------------------------------------------------------
 Inheritance

The TestFixtureAttribute may be applied to a base class and is inherited by any derived classes. This includes any abstract base class, so the well-known Abstract Fixture pattern may be implemented if desired.

In order to facilitate use of generic and/or parameterized classes, where the derived class may require a different number of arguments (or type arguments) from the base class, any TestFixture attribute on a derived class causes those on the base classes to be ignored. This allows use of code like the following: 
-----------------------------------------------------------------

Example:
-------------------------------------------------------------
    [TestFixture(typeof(TagClassDefault))]
    public abstract class AbstractBase<T>
    {
        [Test]
        public void TestMethod()
        {
        }
    }


    [TestFixture(typeof(TagClassCustom))]
    public class ConcreteClass<T> : AbstractBase<T>
    {
    }


    public class TagClassDefault
    {
    }

    public class TagClassCustom
    {
    }

-----------------------------------

Expected Behaviour:
 ConcreteClass is constructed with the TagClassCustom type parameter only

Actual Behaviour:
 ConcreateClass is constructed twice, once with TagClassCustom, the other with TagClassDefault





References