Подтвердить что ты не робот

Глобальный метод инициализации теста для MSTest

Быстрый вопрос, как создать метод, который запускается только один раз, прежде чем все тесты в решении будут запущены.

4b9b3361

Ответ 1

Создайте открытый статический метод, украшенный атрибутом AssemblyInitialize. Среда тестирования будет вызывать этот метод установки один раз за тестовый запуск:

[AssemblyInitialize()]
public static void MyTestInitialize(TestContext testContext)
{}

Для TearDown это:

[AssemblyCleanup]
public static void TearDown() 
{}

EDIT:

Еще одна очень важная деталь: класс, к которому относится этот метод, должен быть украшен [TestClass]. В противном случае метод инициализации не будет запущен.

Ответ 2

Просто чтобы подчеркнуть, что @driis и @Malice сказали в принятом ответе, вот как должен выглядеть ваш глобальный класс инициализатора теста:

namespace ThanksDriis
{
    [TestClass]
    class GlobalTestInitializer
    {
        [AssemblyInitialize()]
        public static void MyTestInitialize(TestContext testContext)
        {
            // The test framework will call this method once -BEFORE- each test run.
        }

        [AssemblyCleanup]
        public static void TearDown() 
        {
            // The test framework will call this method once -AFTER- each test run.
        }
    }
}