SetUpFixture выполняется несколько раз

У меня есть следующий код:

File1.cs содержит:

namespace TestsNM
{
    [SetUpFixture]
    public class MySetUpClass
    {
        [SetUp]
        public void RunBeforeAnyTests()
        {
            //....
        }

        [TearDown]
        public void RunAfterAnyTests()
        {
            //...
        }
    }
}

File2.cs содержит:

namespace TestsNM
{
    [TestFixture]
    public class LoginTest : MySetUpClass
    {
        [Test]
        public void LoginInValid()
        {
            //...
        }

        [Test]
        public void LoginValid()
        {
            //...
        }
    }
}

File3.cs содержит:

namespace TestsNM
{
    [TestFixture]
    public class AddTest : MySetUpClass
    {
        [Test]
        public void Execute1()
        {
            //...
        }

        [Test]
        public void Execute2()
        {
            //...
        }
    }
}

File4.cs содержит:

namespace TestsNM
{
    public class Tests
    {
        [Suite]
        public static IEnumerable Suite
        {
            get
            {
                return GetSuite();
            }
        }

        static ArrayList GetSuite()
        {
            ArrayList suite = new ArrayList();

            suite.Add(new LoginTest());
            suite.Add(new AddTest());

            return suite;
        }
    }
}

В основном ():

string[] my_args = { "/fixture=" + typeof(Tests), Assembly.GetExecutingAssembly().Location };
int returnCode = NUnit.ConsoleRunner.Runner.Main(my_args);

Когда я запускаю это, MySetUpClass выполняется до и после каждого теста. Как я могу заставить этот класс работать только один раз до и после всех TestFixtures?

2 ответа

Вы должны изменить тег [SetUp] в [TestFixtureSetUp] а также [TearDown] в [TestFixtureTearDown],

Это не помогло. Я хотел получить следующий вывод: #run RunBeforeAnyTests() # запустить все тесты в классе TestFixture-LoginTest. # запустить все тесты в классе TestFixture-AddTest. #run RunAfterAnyTests() Я добился этого, поместив [TestFixtureSetUp] и [TestFixtureTearDown] в классы-тесты. открытый класс Tests { [TestFixtureSetUp] public void Setup(); [TestFixtureTearDown] public void Teardown(); [Suite] общедоступный статический IEnumerable Suite; }

Также вынул базовый класс -MySetUpClass.

Другие вопросы по тегам