** Description changed: 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 + 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: + 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. ----------------------------------------------------------------- - Example: + However this isn't happening as the following test case shows. + + Reproducible Test Case: ------------------------------------------------------------- - [TestFixture(typeof(TagClassDefault))] - public abstract class AbstractBase<T> - { - [Test] - public void TestMethod() - { - } - } + [TestFixture(typeof(TagClassDefault))] + public abstract class AbstractBase<T> + { + [Test] + public void TestMethod() + { + } + } + [TestFixture(typeof(TagClassCustom))] + public class ConcreteClass<T> : AbstractBase<T> + { + } - [TestFixture(typeof(TagClassCustom))] - public class ConcreteClass<T> : AbstractBase<T> - { - } + public class TagClassDefault + { + } - - public class TagClassDefault - { - } - - public class TagClassCustom - { - } + public class TagClassCustom + { + } ----------------------------------- Expected Behaviour: - ConcreteClass is constructed with the TagClassCustom type parameter only + ConcreteClass is constructed with the TagClassCustom type parameter only Actual Behaviour: - ConcreateClass is constructed twice, once with TagClassCustom, the other with TagClassDefault + ConcreateClass is constructed twice, once with TagClassCustom, the other with TagClassDefault
-- 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. ----------------------------------------------------------------- However this isn't happening as the following test case shows. Reproducible Test Case: ------------------------------------------------------------- [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 _______________________________________________ Mailing list: https://launchpad.net/~nunit-core Post to : [email protected] Unsubscribe : https://launchpad.net/~nunit-core More help : https://help.launchpad.net/ListHelp

