Ведение одноэлементного объекта в тестах WatiN - PullRequest
0 голосов
/ 30 июня 2011

У меня проблема с сохранением одноэлементного объекта в тестах 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
        }
    );

Любая идея будет оценена. Спасибо.

1 Ответ

0 голосов
/ 13 июля 2011

После изменения "/ domain: Single" на "/ domain: None" теперь создается один объект

...