首页 > 解决方案 > MSTest 每次都调用构造函数

问题描述

我得到了一个单元测试(MStest) 有一个测试类有很多测试方法。如果我从 TestExplorer 运行所有方法,每个方法都会调用构造函数。有没有办法在所有这些方法中保存 TestClass 实例?

标签: c#visual-studiounit-testingmstest

解决方案


好吧,有多个不同的属性指示何时应该调用方法。当您希望设置对所有测试只运行一次时,您应该使用ClassInitialize -attribute,而不是构造函数:

[TestClass]
class MyTests
{
    [ClassInitialize]
    public static void SetupTests(TestContext context) { ... }
}

从构造函数中执行初始化只是一个坏主意,因为每个测试框架都有自己的计划来调用它们的时间和频率。相反,您应该使用在使用中具有确定性的属性。

如果您需要在每次测试之前进行初始化,您可以使用 -TestInitialize属性。


推荐阅读