为什么ClassInitialize方法必须是静态的?

时间:2012-08-26 12:28:55

标签: visual-studio unit-testing mstest

我很好奇为什么夹具设置必须是静态的?对于我而言,每个夹具具有共享夹具寿命的实例变量似乎更直观。

是的,这些可以在构造函数中初始化,但我认为它们无法控制测试运行器。

哪些设计要求或理念确定设置方法应该是静态的?

1 个答案:

答案 0 :(得分:41)

具有ClassInitialize属性的方法对类中的所有测试运行一次。每次运行测试时都会创建一个类的实例,因此它必须是静态的才能运行一次。

如果要为每个测试初始化​​,那么可以使用TestInitialize属性,该属性将在创建类的新实例时运行(在运行测试之前)。

如果您需要更多信息,可以查看:

That Pesky MSTest Execution Ordering