加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – NUnit不服从属性继承

发布时间:2020-12-15 17:49:41 所属栏目:百科 来源:网络整理
导读:我有一个NUnit的问题 – 想知道是否有任何想法. 我们使用的是NUnit 2.5.3.9345和C#3.5. 采取以下代码: public class UnitTestBase{ [TestFixtureSetUp] public void SetUpTestFixture() { //Do something in base }}[TestFixture]public class SomeTestClas
我有一个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中运行内置测试项目可以生成有效的输出.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读