Mic*_*ael 11 c# nunit unit-testing
我对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
}
}
Run Code Online (Sandbox Code Playgroud)
根据文档,如果我运行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));
}
}
Run Code Online (Sandbox Code Playgroud)
测试库
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));
}
}
Run Code Online (Sandbox Code Playgroud)
这会产生以下输出:
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
Run Code Online (Sandbox Code Playgroud)
我能够使用 ReSharper 5 beta 和 Nunit GUI v 2.5.3.9345(32 位)测试输出
编辑 在工作时,ReSharper 4.5 中的测试运行程序无法正常工作,但是使用相应的 NUnit.exe/NUnit-86.exe 在 x86 和 x64 中运行构建的测试项目会产生有效的输出。
归档时间: |
|
查看次数: |
2900 次 |
最近记录: |