Global.asax для модульных тестов?

В моем проекте MSTest UnitTest, прежде, чем запустить любые тесты, я должен выполнить некоторые команды. Существует ли функция, отчасти как Global.asax для веб-проектов, которые позволят мне начать что-то перед каким-либо тестовым прогоном?

Я должен прояснить, что, когда я говорю, "выполняют некоторые команды", я не имею в виду команд DOS, но выполняю некоторый код.

9
задан AngryHacker 10 June 2010 в 21:34
поделиться

3 ответа

Если я правильно понимаю, вам нужно запустить код инициализации перед началом тестов. Если это действительно так, вам следует объявить метод внутри класса вашего юнит-теста с ClassInitializeAttribute вот так:

[ClassInitialize]
public void ClassSetUp()
{
     //initialization code goes here...
}

Edit: there is also the AssemblyInitializeAttribute that will run before any other tests in assembly

17
ответ дан 4 December 2019 в 10:03
поделиться

Фреймворки модульного тестирования обычно поддерживают методы настройки и «разрыва» как для всего инструментария тестирования, так и для отдельных тестов. MSTest позволяет вам указать, какие методы запускать при использовании этих атрибутов:

[ClassIntialize()]
public void ClassInitialize() {
    // MSTest runs this code once before any of your tests
}

[ClassCleanup()]
public void ClassCleanUp() {
    // Runs this code once after all your tests are finished.
}

[TestIntialize()]
public void TestInitialize() {
    // Runs this code before every test
}

[TestCleanup()]
public void TestCleanUp() {
    // Runs this code after every test
}

Сказав это, будьте осторожны с методами инициализации и очистки класса, если вы запускаете модульные тесты ASP.NET. Как сказано в документации ClassInitializeAttribute :

Этот атрибут не должен использоваться в Модульные тесты ASP.NET, то есть любой тест с атрибутом [HostType ("ASP.NET")]. Из-за того, что IIS не имеет состояния и ASP.NET, метод, украшенный этот атрибут может называться более чем один раз за тестовый запуск.

3
ответ дан 4 December 2019 в 10:03
поделиться

свойства вашего проекта, а затем поле отладки, где вы можете указать аргументы

РЕДАКТИРОВАТЬ Когда вы видите меню отладки в свойствах, вы можете запустить внешнюю программу, которая сделает за вас определенные действия, когда вы начнете отладку. Это сработает, когда вы запустите экземпляр своего тестового проекта. Вы также можете указать аргументы командной строки в поле аргументов командной строки.

Например, я использую NUnit. Я указываю NUnit как внешнюю программу и указываю расположение .dll в аргументах командной строки

1
ответ дан 4 December 2019 в 10:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: