Как мне проигнорировать тест условно в mbUnit?

Я использую TeamCity для создания автоматизированных сборок тестирования и производства. TeamCity запускает наши тесты mbUnit 3.1 в конце процесса с Gallio.

При запуске тестовой сборки Gallio должен попытаться выполнить тесты на тестовом сервере базы данных. Однако при запуске производственной сборки эти тесты запускать не следует, поскольку TeamCity не может получить доступ к серверу производственной базы данных (и даже если бы рабочая база данных была доступна, многие тесты не были бы выполнены с невыпущенным кодом).

Как пометить тест, чтобы он игнорировался в mbUnit на основе логического значения, такого как IsDBOnline?

1 ответ

Решение

Создайте подкласс TestDecoratorAttribute и переопределите метод Initialize(), чтобы проверить IsDBOnline и вызвать Assert.Inconclusive(), если false.

Другим способом достижения аналогичного эффекта является добавление атрибута [Category] к тестам, использующим Db, а затем отфильтровывать их при запуске тестов на производстве.

Другие вопросы по тегам