在所有测试之前和之后 运行 的 MSTest setup/teardown 方法

MSTest setup/teardown methods that run before and after ALL tests

2019 年 Visual Studio 的 MSTest v2 相对较新。TestInitialize 属性指示该方法应 运行 每次测试之前。同样,TestCleanup 表示该方法应该 运行 每次测试之后。

[TestInitialize()]
public void Setup()
{
    // This method will be called before each MSTest test method
}

[TestCleanup()]
public void Teardown()
{
    // This method will be called after each MSTest test method has completed
}

如果你的测试class有N个方法,上面的方法会运行N次。

有没有一种方法可以将 运行 的类似设置和拆卸的方法发信号通知一次?换句话说,对于每一个完整的 运行 通过所有 N 测试,每个方法只会 运行 一次。

NUnit3 和 xUnit v2.4.0 是否有类似的机制?

经过一番搜寻,我偶然发现了 this website with a MSTest "Cheat Sheet",其中包含我正在寻找的示例(在 MSTest 中):

[ClassInitialize]
public static void TestFixtureSetup(TestContext context)
{
    // Called once before all MSTest test methods (optional)
}

[ClassCleanup]
public static void TestFixtureTearDown()
{
    // Called once after all MSTest test methods have completed (optional)
}

ClassInitialize 方法必须是 public、static、return void 并采用单个参数。 ClassCleanup 方法必须是 public、静态、return void 且不带参数。

仍在寻找 NUnit 和 xUnit 中的等效项。