В моем проекте MSTest UnitTest, прежде, чем запустить любые тесты, я должен выполнить некоторые команды. Существует ли функция, отчасти как Global.asax для веб-проектов, которые позволят мне начать что-то перед каким-либо тестовым прогоном?
Я должен прояснить, что, когда я говорю, "выполняют некоторые команды", я не имею в виду команд DOS, но выполняю некоторый код.
Если я правильно понимаю, вам нужно запустить код инициализации перед началом тестов. Если это действительно так, вам следует объявить метод внутри класса вашего юнит-теста с ClassInitializeAttribute вот так:
[ClassInitialize]
public void ClassSetUp()
{
//initialization code goes here...
}
Edit: there is also the AssemblyInitializeAttribute that will run before any other tests in assembly
Фреймворки модульного тестирования обычно поддерживают методы настройки и «разрыва» как для всего инструментария тестирования, так и для отдельных тестов. 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, метод, украшенный этот атрибут может называться более чем один раз за тестовый запуск.
свойства вашего проекта, а затем поле отладки, где вы можете указать аргументы
РЕДАКТИРОВАТЬ Когда вы видите меню отладки в свойствах, вы можете запустить внешнюю программу, которая сделает за вас определенные действия, когда вы начнете отладку. Это сработает, когда вы запустите экземпляр своего тестового проекта. Вы также можете указать аргументы командной строки в поле аргументов командной строки.
Например, я использую NUnit. Я указываю NUnit как внешнюю программу и указываю расположение .dll в аргументах командной строки