nunit-core team mailing list archive
-
nunit-core team
-
Mailing list archive
-
Message #00668
[Bug 590970] Re: static TestFixtureSetUp/TestFixtureTearDown methods in base classes are not run
** Changed in: nunitv2
Importance: Undecided => High
** Changed in: nunitv2
Milestone: None => 2.5.6
** Changed in: nunitv2
Status: New => Triaged
** Also affects: nunit-3.0
Importance: Undecided
Status: New
** Changed in: nunit-3.0
Status: New => Triaged
** Changed in: nunit-3.0
Importance: Undecided => High
--
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 Test Framework: Triaged
Status in NUnit V2 Test Framework: Triaged
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