小编典典

为什么我的 Visual Studio 单元测试中的每个测试都会触发 TestInitialize?

all

我正在使用 Visual Studio 2010 Beta
2。我有一个[TestClass],它有一个[TestInitialize][TestCleanup]和几个[TestMethods]

每次运行测试方法时,初始化和清理方法也会运行!

我的印象是[TestInitialize]&[TestCleanup]应该只运行一次,每次本地测试运行。

那是对的吗?如果不是,那么正确的方法是什么?


阅读 86

收藏
2022-09-02

共1个答案

小编典典

TestInitialize并且TestCleanup在每个测试之前和之后运行,这是为了确保没有测试耦合。

如果您想在所有测试之前和之后运行方法,请使用ClassInitializeClassCleanup属性装饰相关方法。

Visual Studio 中自动生成的测试文件的相关信息:

您可以在编写测试时使用以下附加属性:

// Use ClassInitialize to run code before running the first test in the class
[ClassInitialize()]
public static void MyClassInitialize(TestContext testContext) { }

// Use ClassCleanup to run code after all tests in a class have run
[ClassCleanup()]
public static void MyClassCleanup() { }

// Use TestInitialize to run code before running each test 
[TestInitialize()]
public void MyTestInitialize() { }

// Use TestCleanup to run code after each test has run
[TestCleanup()]
public void MyTestCleanup() { }
2022-09-02