I\'m looking at some test code using NUnit, which inherits from a base class containing a [SetUp] attribute:
public class BaseClass
{
[SetUp]
public vo
Before NUnit 2.5 the previous answers were correct; you could only have a single [SetUp]
attribute for a test.
With NUnit 2.5 onwards you can have multiple methods decorated with the [SetUp]
attribute. Therefore the below is perfectly valid in NUnit 2.5+:
public abstract class BaseClass
{
[SetUp]
public void BaseSetUp()
{
Debug.WriteLine("BaseSetUp Called")
}
}
[TestFixture]
public class DerivedClass : BaseClass
{
[SetUp]
public void DerivedSetup()
{
Debug.WriteLine("DerivedSetup Called")
}
[Test]
public void SampleTest()
{
/* Will output
* BaseSetUp Called
* DerivedSetup Called
*/
}
}
When inheriting NUnit will always run the '[SetUp]' method in the base class first. If multiple [SetUp]
methods are declared in a single class NUnit cannot guarantee the order of execution.
See here for further information.