Быстрый вопрос, как создать метод, который запускается только один раз, прежде чем все тесты в решении будут запущены.
Глобальный метод инициализации теста для MSTest
Ответ 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.
}
}
}