Visual Studio 单元测试:SetUp 和 TearDown

101

在Visual Studio Ultimate 2010 Unit Testing中,替代Nunit中的[SetUp]和[TearDown]的方法是什么? 在Nunit中,您可以将setup和teardown方法想象为我们类中测试的构造函数和析构函数。


7
可能是[在MSTest中,\ [SetUp]和\ TearDown]有什么替代方案?的重复问题。 - jessehouwing
1
可能是在MSTest中替代SetUp和TearDown的其他方法是什么?的重复问题。 - Simon Bosley
2个回答

162

使用[TestInitialize]注解标识的方法会在每次测试之前运行。 同样,[TestCleanup]会在每次测试之后运行。

[ClassInitialize][ClassCleanup]会在测试类内部的测试'套件'之前和之后运行。


7
你可以补充说明ClassInitialize方法需要一个TestContext参数。 - boutta
5
并且它也应该是公共静态的。 - Shalom Aleichem

5

Visual Studio将使用MSTest,这是微软的单元测试框架,类似于NUnit。实际上,它们大部分概念相似但语法不同。

为了查看比较,xUnit(另一个单元测试框架)的创建者在此处提供了列表:

https://xunit.net/docs/comparisons

更具体地说,TestInitialize是MSTest等效于NUnit的SetupTestCleanup也是等效于NUnit的TearDown

需要注意的一点是,如果您正在尝试进行自动化单元测试或某种持续集成,请使用NUnit。各种*unit框架比MSTest受欢迎的主要原因是因为您必须在运行测试的机器上安装Visual Studio。对于您自己的本地机器来说还好,但对于CI服务器来说就不同了。Visual Studio是一个庞大的程序,在服务器上安装它(通常应该尽可能轻量级和快速),仅用于运行测试有点烦人。


9
您可以在CI服务器上简单安装TFS Team Test Agent(不需要配置),以获得测试运行程序的安装(http://www.microsoft.com/en-us/download/details.aspx?id=1334)。除非您需要进行通用、有序、CodedUI或性能测试,否则无需完整安装Visual Studio。 - jessehouwing
1
Team Build 2012可以直接安装不同测试运行程序的支持,无需在构建服务器上额外安装Visual Studio。 - jessehouwing

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接