Comment 1 for bug 590970

Revision history for this message
Jv (jv-ravichandran) wrote : Re: [Bug 590970] [NEW] static TestFixtureSetUp/TestFixtureTearDown methods in base classes are not run

Hi Scott,

PFA a screenshot of a test method in the base class. The console does show
the print statements from the base class. In your example, there was no test
method in the class...the reason why the base class' fixtures were not
getting executed.

Looking at it, would you call this a bug?

Jv

On Tue, Jun 8, 2010 at 2:12 AM, Scott Hunter <email address hidden> wrote:

> Public bug reported:
>
> NUnit 2.5.5. Even though TestFixtureSetUp/TestFixtureTearDown methods
> can be static, if they are defined them in a base class, they won't be
> executed. From looking at the code, it seems like the problem is that
> the reflection code to find fixture setup/teardown methods does not
> search base classes.
>
> To reproduce:
>
> using System;
> using NUnit.Framework;
>
> public class TestBase
> {
> [TestFixtureSetUp]
> public static void TestBaseTestFixtureSetUp()
> {
> Console.Out.WriteLine("TestBase TestFixtureSetUp");
> }
>
> [TestFixtureTearDown]
> public static void TestBaseTestFixtureTearDown()
> {
> Console.Out.WriteLine("TestBase TestFixtureTearDown");
> }
> }
>
> public class TestDerived : TestBase
> {
> [TestFixtureSetUp]
> public static void TestFixtureSetUp()
> {
> Console.Out.WriteLine("TestDerived TestFixtureSetUp");
> }
>
> [TestFixtureTearDown]
> public static void TestFixtureTearDown()
> {
> Console.Out.WriteLine("TestDerived TestFixtureTearDown");
> }
>
> [Test]
> public void TestMethod()
> {
> Console.Out.WriteLine("TestMethod");
> }
> }
>
> When you run this test, it only prints messages for the TestDerived
> class, not for TestBase.
>
> ** Affects: nunitv2
> Importance: Undecided
> Status: New
>
> --
> static TestFixtureSetUp/TestFixtureTearDown methods in base classes are not
> run
> https://bugs.launchpad.net/bugs/590970
> You received this bug notification because you are a member of NUnit
> Developers, which is subscribed to NUnit V2.
>
> Status in NUnit V2 Test Framework: New
>
> Bug description:
> NUnit 2.5.5. Even though TestFixtureSetUp/TestFixtureTearDown methods can
> be static, if they are defined them in a base class, they won't be executed.
> From looking at the code, it seems like the problem is that the reflection
> code to find fixture setup/teardown methods does not search base classes.
>
> To reproduce:
>
> using System;
> using NUnit.Framework;
>
> public class TestBase
> {
> [TestFixtureSetUp]
> public static void TestBaseTestFixtureSetUp()
> {
> Console.Out.WriteLine("TestBase TestFixtureSetUp");
> }
>
> [TestFixtureTearDown]
> public static void TestBaseTestFixtureTearDown()
> {
> Console.Out.WriteLine("TestBase TestFixtureTearDown");
> }
> }
>
> public class TestDerived : TestBase
> {
> [TestFixtureSetUp]
> public static void TestFixtureSetUp()
> {
> Console.Out.WriteLine("TestDerived TestFixtureSetUp");
> }
>
> [TestFixtureTearDown]
> public static void TestFixtureTearDown()
> {
> Console.Out.WriteLine("TestDerived TestFixtureTearDown");
> }
>
> [Test]
> public void TestMethod()
> {
> Console.Out.WriteLine("TestMethod");
> }
> }
>
> When you run this test, it only prints messages for the TestDerived class,
> not for TestBase.
>
>
>

--
Regards,

Ravichandran Jv
http://ravichandranjv.blogspot.com