TestInitialize vs ClassInitialize

本文关键字:ClassInitialize vs TestInitialize | 更新日期: 2023-09-27 17:57:52

MSTest中的TestInitializeClassInitialize之间有什么区别?每种方法的优缺点是什么?

我的印象是TestInitialze每次都应该与EACH测试一起运行?这是正确的吗?并且ClassInitialize将在每次任何类的新实例时运行?

TestInitialize vs ClassInitialize

这两个属性仅可用于它们所属的类(以及测试)。

TestInitialize在声明属性的同一类上声明的每个测试之前运行

ClassInitialize仅在声明属性的类初始化时运行。换句话说,它不会为每一个班级运行。仅适用于包含ClassInitialize方法的类。

如果您想要一个在所有测试或类初始化之前运行一次的方法,请使用AssemblyInitialize

由于ClassInitialize和ClassCleanUp是静态的,即使MSTest可以创建测试类的多个实例,它们也只执行一次。

你可以在这里阅读更多信息:The Pesky MSTest Execution Ordering。。learn.microsoft.com