我在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()
{
...
}
}
答案 0 :(得分:5)
如果您添加此代码,您可以确认您的怀疑:
private static bool initialized = false;
[TestFixtureSetUp]
public static void FixtureSetup()
{
if (initialized) Assert.Fail("fixture setup called multiple times");
initialized = true;
...
}
测试运行器可以单独调用每个测试,而不是将TestFixture视为一组测试。
顺便说一句,我会在单元测试中避免使用static
,因为如果你有任何静态变量,它们的状态将从每次运行中进行(虽然夹具类型需要这个)并且你失去了“单位”单元测试的一部分。