我有一个NUnit的问题 – 想知道是否有任何想法.
我们使用的是NUnit 2.5.3.9345和C#3.5.
采取以下代码:
public class UnitTestBase
{
[TestFixtureSetUp]
public void SetUpTestFixture()
{
//Do something in base
}
}
[TestFixture]
public class SomeTestClass : UnitTestBase
{
[TestFixtureSetUp]
public void FixtureSetUp()
{
//Do something in test class
}
[Test]
public void Sometest()
{
//Some assertion
}
}
根据documentation,如果我运行SomeTestClass.sometest(),UnitTestBase.SetUpTestFixture()应该在SomeTestClass.FixtureSetUp()之前调用.
不是这样 – 只有在派生类中不提供[TestFixtureSetUp]方法时,才会调用基本方法.
有什么想法吗?有我真的困惑!
谢谢.
解决方法
我没有问题.我用以下内容测试了结果:
衍生测试
[TestFixture]
public class DerivedTest : TestBase
{
[TestFixtureSetUp]
public void FixtureSetup()
{
File.AppendAllText("Out.txt",string.Format("TestFixtureSetUp From DerivedTest{0}",Environment.NewLine));
}
[TestFixtureTearDown]
public void FixtureTearDown()
{
File.AppendAllText("Out.txt",string.Format("TestFixtureTearDown Down From DerivedTest{0}",Environment.NewLine));
}
[SetUp]
public void Setup()
{
File.AppendAllText("Out.txt",string.Format("Setup From DerivedTest{0}",Environment.NewLine));
}
[TearDown]
public void Down()
{
File.AppendAllText("Out.txt",string.Format("TearDown From DerivedTest{0}",Environment.NewLine));
}
[Test]
public void DoAtest()
{
File.AppendAllText("Out.txt",string.Format("Did a Test{0}",Environment.NewLine));
}
}
TestBase
public class TestBase
{
[TestFixtureSetUp]
public void BaseTestFixtureSetUp()
{
File.AppendAllText("Out.txt",string.Format("TestFixtureSetUp From TestBase{0}",Environment.NewLine));
}
[TestFixtureTearDown]
public void BaseTestFixtureTearDown()
{
File.AppendAllText("Out.txt",string.Format("TestFixtureTearDown From TestBase{0}",Environment.NewLine));
}
[SetUp]
public void BaseSetup()
{
File.AppendAllText("Out.txt",string.Format("Setup From TestBase{0}",Environment.NewLine));
}
[TearDown]
public void TearDown()
{
File.AppendAllText("Out.txt",string.Format("TearDown From TestBase{0}",Environment.NewLine));
}
}
这产生以下输出:
TestFixtureSetUp From TestBase TestFixtureSetUp From DerivedTest Setup From TestBase Setup From DerivedTest Did a Test TearDown From DerivedTest TearDown From TestBase TestFixtureTearDown Down From DerivedTest TestFixtureTearDown From TestBase
我能够使用ReSharper 5 beta和Nunit GUI v 2.5.3.9345(32位)测试输出
编辑在工作中,ReSharper 4.5中的测试运行程序无法正常运行,但是使用相应的NUnit.exe / NUnit-86.exe在x86和x64中运行内置测试项目可以生成有效的输出.