首页 > 解决方案 > 为什么每个[TestMethod]都会多次调用[TestClass]的构造函数?

问题描述

如果您在测试类上有多个测试方法。类的构造函数将运行多次。我们如何解释这种过载?

标签: c#unit-testingmstest

解决方案


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

A)更新您的问题以解释您想要完成的确切内容

B)利用该[ClassInitialize]属性标记一个方法在运行任何类的测试之前只运行一次

ClassInitialize 做什么

ClassInitialize是使用 MSTest 在 C# 中编写单元测试时可用的众多属性之一。较常见的包括TestClassTestMethodTestInitialize。这表明该方法应该在运行任何标有 的方法之前运行一次TestMethod。还有另一个与之密切相关的属性被调用ClassCleanup,它在所有测试方法都运行后运行。

您可以在docs.microsoft.com上阅读有关这些和更多属性的更多详细信息


推荐阅读