是否可以在运行所有测试之前执行代码?

时间:2010-01-20 08:57:08

标签: .net mbunit

我正在编写集成测试。现在,在运行测试之前,我想用初始数据设置数据库。为此,我创建了一个单独的项目,它在执行测试项目之前运行(使用MSBuild文件)。但是,我想合并testproject中的数据库设置代码,并在执行任何测试之前执行它。我正在使用MBunit 3.它可能吗?

3 个答案:

答案 0 :(得分:1)

您可以声明具有[AssemblyFixture]属性的类;以及使用[FixtureSetUp][FixtureTearDown]属性定义程序集级别设置和拆卸方法的类中的一些方法。

[AssemblyFixture]
public class MyAssemblyFixture
{
   [FixtureSetUp]
   public void SetUp()
   {
      // Code to be run before any test fixture within the assembly are executed.
   }

   [FixtureTearDown]
   public void TearDown()
   {
      // Code to be run after all test fixture within the assembly are executed.
   }
}

实际上,语法类似于通常在测试夹具级别使用众所周知的[TestFixture][SetUp][TearDown]属性进行的语法。

答案 1 :(得分:0)

通常,测试框架具有方法属性,以允许在每次测试之前和每次测试之后以及测试运行之前和测试运行之后执行代码。我不知道mbunit的属性,因为我还没有使用它。

查看此链接...我相信mbunit将具有与nunit类似的属性

http://blogs.msdn.com/nnaderi/archive/2007/02/01/mstest-vs-nunit-frameworks.aspx

答案 2 :(得分:0)

MBunit没有过多的文档,但是快速的Google搜索提供this article,我可以从中了解MBUnit与NUnit [SetUp]和[TearDown]具有相似的属性。装饰的方法分别在每次测试之前和之后执行。