在所有测试之前和之后运行的 MSTest 设置/拆卸方法

问题描述 投票:0回答:1

Visual Studio 2019 中的 MSTest v2 相对较新。

TestInitialize
属性指示该方法应在 before 每个测试之前运行。同样,
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 }
如果你的测试类有N个方法,上面的方法将运行N次。

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

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

c# unit-testing nunit mstest xunit
1个回答
9
投票
经过一番搜寻,我偶然发现了

这个网站,其中包含 MSTest“备忘单”,其中包含我正在寻找的示例(在 MSTest 中):

[ClassInitialize] public static void TestFixtureSetup(TestContext context) { // Called once before any MSTest test method has started (optional) } [ClassCleanup] public static void TestFixtureTearDown() { // Called once after all MSTest test methods have completed (optional) }

ClassInitialize

方法必须是公共的、静态的、返回void并且采用单个参数。 
ClassCleanup
 方法必须是公共的、静态的、返回 void 并且不带任何参数。

对于 NUnit,属性引用可以

在这里找到

[OneTimeSetUp] public void TestFixtureSetup() { // Called once before any NUnit test method has started (optional) } [OneTimeTearDown] public void TestFixtureTearDown() { // Called once after all NUnit test methods have completed (optional) }

OneTimeSetUp

方法必须是公共的,但可以是静态方法或实例方法。与 
OneTimeTearDown
 方法相同。

xUnit 似乎不支持

Setup

 / 
Teardown
 功能。

© www.soinside.com 2019 - 2024. All rights reserved.