gpt4 book ai didi

c# - NUnit TestFixtureSetUp 运行多次?

转载 作者:行者123 更新时间:2023-11-30 15:03:38 25 4
gpt4 key购买 nike

我在 Visual Studio 2010 中使用 NUnit 2.6 和 Visual NUnit 进行了基本测试设置。我的问题是,当我运行所有测试时,似乎 FixtureSetup 方法(具有 TestFixtureSetUpAttribute)正在为每个测试运行一次测试。

我也曾尝试将 Init 代码放入构造函数,但它给出了相同的结果。

测试本身向运行时报告它们的运行时间,例如 0.003 和 0.032 等等。

    [TestFixture]
public class MODatabaseTests
{
[TestFixtureSetUp]
public static void FixtureSetup()
{
// Perform heavy init (~1.5s)
}

[Test]
public void TestA()
{
...
}

[Test]
public void TestB()
{
...
}

}

最佳答案

如果你添加这段代码,你可以证实你的怀疑:

    private static bool initialized = false;
[TestFixtureSetUp]
public static void FixtureSetup()
{
if (initialized) Assert.Fail("fixture setup called multiple times");
initialized = true;
...
}

测试运行器可以单独调用每个测试,而不是将 TestFixture 视为一组测试。

顺便说一句,我会在单元测试中避免 static 因为如果你有任何静态变量,它们的状态会从每次运行中携带(尽管夹具有点想要这个)并且你失去了单元测试的“单元”部分。

关于c# - NUnit TestFixtureSetUp 运行多次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11316623/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com