为什么[TestClass]的构造函数为每个[TestMethod]多次调用?

时间:2019-01-24 19:38:05

标签: c# unit-testing mstest

在一个测试类上有多个测试方法的情况下。类的构造函数将运行多次。我们如何解释这种超载?

1 个答案:

答案 0 :(得分:3)

据我对MSTest的了解,每个[TestMethod]都实例化了测试类。我猜您正在尝试运行任何测试之前运行配置代码。如果是这种情况,我建议您:

A)更新您的问题,以解释您到底要完成什么

B)利用[ClassInitialize]属性将方法标记为要运行一次,并且在运行任何类的测试之前只能运行一次。

ClassInitialize的作用

ClassInitialize是使用MSTest在C#中编写单元测试时可用的众多属性之一。较常见的包括TestClassTestMethodTestInitialize。这表明该方法应在运行任何带有TestMethod的方法之前运行一次。还有一个与之并驾齐驱的名为ClassCleanup的属性,它在所有测试方法都运行后才运行。

您可以在docs.microsoft.com

上阅读有关这些属性和更多属性的更多详细信息。