MSTest中TestInitialize
与ClassInitialize
的区别是什么?每个人的优点是什么?
我认为TestInitialze
应该每次都进行EACH测试吗?那是对的吗?并且ClassInitialize
每次都会在任何类的新实例中运行?
答案 0 :(得分:93)
这两个属性仅适用于它们所属的类(以及测试)。
TestInitialize
在声明属性的相同类上声明的每个测试之前运行。
ClassInitialize
在声明属性的类的初始化时仅运行 。换句话说,它不适用于每个班级。仅适用于包含ClassInitialize
方法的类。
如果您想要一个在所有测试或类初始化之前运行一次的方法,请使用AssemblyInitialize
。
答案 1 :(得分:-1)
由于 ClassInitialize 和 ClassCleanUp 是静态的,因此即使 MSTest 可以创建测试类的多个实例,它们也只会执行一次。
您可以在此处阅读更多相关信息:That Pesky MSTest Execution Ordering.. docs.microsoft.com