У меня проблема с сохранением одноэлементного объекта в тестах NUnit.
Это мой базовый класс:
[TestFixture]
public class SuiteBase
{
public MyLib lib = null;
[TestFixtureSetUp]
public void TestFixtureSetUp()
{
lib = MyLib.Instance;
}
[TestFixtureTearDown]
public void TestFixtureTearDown()
{
}
}
И это один из моих тестовых наборов.
[TestFixture]
public class Suite1 : SuiteBase
{
[Test]
public void Test1()
{
lib.Foo();
//...
}
[Test]
public void Test2()
{
lib.Bar();
//...
}
}
И класс MyLib определяется следующим образом:
//singleton class
public sealed class MyLib
{
public IE browser;
//other public fields...
public static MyLib Instance
{
get
{
if (instance == null)
{
instance = new MyLibLib();
using (StreamWriter sw = new StreamWriter(@"c:\test.txt", true))
{
sw.WriteLine("Creating object");
sw.Flush();
}
}
return instance;
}
}
private static MyLib instance;
private MyLib()
{
browser = new IE();
//init the rest of public fields
}
}
Проблема в том, что объект класса singleton создается при каждом тесте, который я запускаю, используя:
int result = NUnit.ConsoleRunner.Runner.Main(new string[] {
"/run:" + MyAssembly.GetName().Name + testSuiteName + "." + testCaseName, MyAssembly.Location,
"/process:Single",
"/domain:Single",
"/nothread",
"/timeout:" + testTimeout
}
);
Любая идея будет оценена. Спасибо.