Как мне проигнорировать тест условно в mbUnit?
Я использую TeamCity для создания автоматизированных сборок тестирования и производства. TeamCity запускает наши тесты mbUnit 3.1 в конце процесса с Gallio.
При запуске тестовой сборки Gallio должен попытаться выполнить тесты на тестовом сервере базы данных. Однако при запуске производственной сборки эти тесты запускать не следует, поскольку TeamCity не может получить доступ к серверу производственной базы данных (и даже если бы рабочая база данных была доступна, многие тесты не были бы выполнены с невыпущенным кодом).
Как пометить тест, чтобы он игнорировался в mbUnit на основе логического значения, такого как IsDBOnline?
1 ответ
Создайте подкласс TestDecoratorAttribute и переопределите метод Initialize(), чтобы проверить IsDBOnline и вызвать Assert.Inconclusive(), если false.
Другим способом достижения аналогичного эффекта является добавление атрибута [Category] к тестам, использующим Db, а затем отфильтровывать их при запуске тестов на производстве.