在WatiN测试中维护一个singleton对象
本文关键字:一个 singleton 对象 WatiN 测试 维护 | 更新日期: 2023-09-27 18:00:52
我在NUnit测试中保留对象singleton时遇到了问题。
这是我的基类:
[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
}
);
任何想法都将不胜感激。谢谢
将"/domain:Single"更改为"/domain:None"后,它现在创建一个单一对象