Global.asax для модульных тестов? - PullRequest
9 голосов
/ 11 июня 2010

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

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

Ответы [ 3 ]

17 голосов
/ 11 июня 2010

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

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

Редактировать: есть также AssemblyInitializeAttribute , который будет выполняться перед любыми другими тестами в сборке

3 голосов
/ 11 июня 2010

Фреймворки модульных тестов обычно поддерживают методы настройки и «снятия» как для всего тестового оборудования, так и для отдельных тестов. 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, метод, украшенный этот атрибут можно назвать более чем один раз за тестовый прогон.

1 голос
/ 11 июня 2010

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

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

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

...