nunit-core team mailing list archive
-
nunit-core team
-
Mailing list archive
-
Message #00568
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 <shunter@xxxxxxx> 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
** Attachment added: "nunit_base_fixture.JPG"
http://launchpadlibrarian.net/49934362/nunit_base_fixture.JPG
--
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.
References