美文网首页
nunit特性

nunit特性

作者: 皿卜土 | 来源:发表于2016-11-02 12:52 被阅读0次

    [TestFixture(arguments)]属性标记类为测试类,若没有填写参数,则测试类必须含有无参构造函数,否则需要相应的有参构造函数。也可以多个测试[TestFixture(1), TestFixture("a")]
    [Test]属性标记方法为测试方法,中添加Description参数可以给我们测试的功能添加描述信息。

    [TestCase(arguments)]属性标记有参数无返值方法为测试方法(泛型方法一样标记),想要多次测试可用逗号隔开([TestCase(1,2), TestCase(2,3)])。

    [TestCase(arguments,Result = value)属性标记带参数与返回值的方法为测试方法,执行的时候把预期的返回值也告诉NUnit,如果返回值不对,测试同样无法通过。

    [Suite](测试套件,仅对属性与索引器标记有效):可以将多个测试类组合到一起,同时执行多个测试。本版本的开发人员的一个信念就是减少这个的需要,可以使用[Category]来替代它。

    [Explicit]属性标记测试方法需要在UI界面显式执行,如果不想对某个方法进行单元测试,只是在它被选中时才进行测试的话,可以调用该特性。

    [Ignore]属性标记一个测试方法或一个测试类被忽略,如果测试类被忽略,其内中的测试方法也会被忽略。

    [ExpectedException(Type)]属性标记测试方法在运行时抛出一个期望的异常,如果是则测试通过,否则不通过。

    [Category("")]属性标记用于将测试分类(便于只测试需要的类别),可在方法与类上进行标记,在NUnit-GUI界面的Categories选项卡中对要测试种类进行添加,Run时仅测试该类别的测试。

    [TestFixtureSetUp]属性标记方法为类级别设置(初始化)方法,在整个测试类中执行一次初始化,所有的测试方法共享初始化数据。

    [TestFixtureTearDown]属性标记方法为类级别拆卸方法,在整个测试类中执行一次拆卸.当测试类中的所有测试方法执行完成,就会执行拆卸方法,用于清除数据、释放资源。

    [TearDown]属性标记方法为函数级别的拆卸方法,在执行完每个测试方法后,执行该拆卸方法。一个测试类可以仅有一个TearDown/Setup/TestFixtureSetUp/TestFixtureTearDown方法。如果有多个定义,测试类也会编译成功,但是测试时不会运行这些标记过的方法。

    [SetUp]属性标记方法为函数级别的设置方法,在执行每个测试方法前,执行该设置方法。

    每执行一次Run,就是new一个新的实例在测试。

    [Maxtime]/[Timeout]属性标记测试用例的最大执行时间,前者超时时不取消测试,而后者会强行中断,用法如:[Test, Maxtime(2000)],[Test, Timeout(2000)]。

    [Repeat]属性标记测试方法重复执行多少次,如:[Test, Repeat(100)]。

    [RequiresMTA]/[RequiresSTA]/[RequiresThread]属性标记测试用例必须的在多线程、单线程、独立的线程状态下运行。

    [Values]属性标记测试用例的参数,以参数的形式传入一组值,NUnit会把这组值分解成相应数量的子测试。当测试用例的2个参数都使用[Values]进行标记,NUnit默认生成2组数量乘积的用例,需要使用[Sequential]标记测试用例才能按顺序生成一一对应的n(n=2组中最大数组长度)个子测试用例。

    [ValueSource]属性标记测试用例的参数,指定参数的数据源来自哪里,在使用[ValueSource]指定数据源时,该数据源必须实现了IEnumerable接口,数据源可以是属性、无参方法、实例或静态成员。

    using System;
    using NUnit.Framework;
    [TestFixture]
    public class LifeCycleContractFixture
    {
        [TestFixtureSetUp]
        public void FixtureSetUp()
        {
            Console.Out.WriteLine("FixtureSetUp");
        }
        [TestFixtureTearDown]
        public void FixtureTearDown()
        {
            Console.Out.WriteLine("FixtureTearDown");
        }
        [SetUp]
        public void SetUp()
        {
            Console.Out.WriteLine("SetUp");
        }
        [TearDown]
        public void TearDown()
        {
            Console.Out.WriteLine("TearDown");
        }
        [Test]
        public void Test1()
        {
            Console.Out.WriteLine("Test 1");
        }
        [Test]
        public void Test2()
        {
            Console.Out.WriteLine("Test 2");
        }
    }
    运行结果:
            FixtureSetUp
            SetUp
            Test 1
            TearDown
            SetUp
            Test 2
            TearDown
            FixtureTearDown
    

    相关文章

      网友评论

          本文标题:nunit特性

          本文链接:https://www.haomeiwen.com/subject/jbpvuttx.html