2024年4月30日发(作者:)

单元测试框NUnit 之 Attributes

特性 二

单元测试框NUnit 之 Attributes特性(二)

00

14,RepeatAttribute (NUnit 2.5) RepeatAttribute 是用来指定一

个测试用例应该运行几次。如果任何一次失败,以下的次数将不会运行并只报

告一次错误。

15,RequiredAddinAttribute (NUnit 2.5)

RequiredAddin attribute 用来指定一个程序集如果要正确运行所需

要的程序集。如果指定的程序集没有被引用,整个程序将会标记为不可执行的。

在3个试用版本中,这个

特性

可以被应用到类或方法上,但是从下个

版将会限定只用到程序集。

示例: 16,RequiresMTAAttribute (NUnit 2.5)

RequiresMTAAttribute 应用在方法、类或程序集上,指明这段代码要运行在多

线程套间(multi-threaded apartment):如果父测试不是MTA线程中运行,

会创建一个新的MTA线程。

17,RequiresSTAAttribute (NUnit 2.5)

它要求测试运行在单线程套间(Single-threaded apartment)。它也

会创建一个新的STA线程如果父测试不是在STA线程中运行。

18,RequiresThreadAttribute (NUnit 2.5)

它要求应用此

特性

方法、类或程序集应该运行在独立的线程中。你也

可以在构造中加入一个可选的参数用来指明线程的ApartmentState。用此方法,

不管你带参数或不带,都会创建一个新的线程,而RequiresSTAAttribute or

RequiresMTAAttribute只会在当前线程的ApartmentState不适合时才会创建。

// 运行这个程序集的测试都会被创建新的线程

[assembly:RequiresThread] ... // 测试类 [TestFixture, RequiresThread]

public class FixtureOnThread { // 该类中的所有方法都会创建一个独立的

线程 } [TestFixture] public class AnotherFixture { [Test,

RequiresThread] public void TestRequiringThread() { // 这个测试运行要

求一个独立的线程 } [Test, RequiresThread()] public

void TestRequiringSTAThread() { // 一个独立的STA线程将会创建用来运行

这个测试 } }

19,SequentialAttribute (NUnit 2.5) SequentialAttribute应用

一个测试方法,会用参数提供的数据项生成测试用例,每个数据只用一次。如

果一个参数是带多重属性的,数据项的顺序不确定的。但是,对于一个给定的

系统和运行时,这个顺序是不变的。

如: 将会按以下方试运行三次: 20,SetCultureAttribute (NUnit

2.4.2) 这个属性会改变当前测试的区域信息,可被应用到方法和类级别。要注

意的是,这个改变的影响直到整个类或方法执行完毕然后再设定为初始值。如

果只想确定在当前区域信息下是不是执行这个测试,请用Culture attribute。

只能确定一个区域信息,在多个区域信息中运行测试将在未来的版本

中增加。不过,通过构建你的测试代码到一个私有方法,然后在各个不同区域

的测试方法中调用,仍然可以达到相同的目的。

21,SetUICultureAttribute (NUnit 2.5.2)

SetUICulture attribute是用来设定UI的区域信息的,用法参照上

面的SetCultureAttribute。

22,SetUpAttribute (NUnit 2.0 / 2.5)

这个

特性

应用在测试类内部提供一些在每一个测试方法调用之前都会

执行的功能。在Nunit2.5之前,要求只能有一个SetUp标记的方法并且要求是

一个实例方法。从2.5开始,可以是实例或静态的,并且可以有多个:多个