2012-02-22 2 views
3

Может ли AppHarbor установить условный символ компиляции во время сборки? Может быть, просто: AppHarborМожет ли AppHarbor установить условный символ компиляции во время сборки?

У меня есть некоторые тесты, которые не могут выполняться на сервере (они полагаются на файлы тестовых данных).

Если AppHarbor может установить условный символ компиляции, тогда я мог бы добавить атрибут [Игнорировать] в тесте, когда этот символ присутствует.

Или есть лучший или отличный способ игнорировать конкретные тесты при работе в AppHarbor?

Или, есть ли способ, чтобы тестовый код правильно ссылался на файл тестовых данных, находящихся в проекте?

Спасибо! Glen

Редактировать: Я получил свой тест для работы, вставив файл данных в качестве ресурса в тестовый проект. Не идеально, но все в порядке. Тем не менее, все равно хотелось бы знать, могут ли быть установлены символы компиляции, как описано.

ответ

4

Установка символа компиляции «AppHarbor» - интересное предложение, но в настоящее время оно не поддерживается в AppHarbor. Возможно, вы захотите добавить его как feature request.

При выполнении тестов Environment appSetting установлен в test. Вы можете использовать это условно, чтобы пропустить определенные тесты. Если вы предпочитаете иметь собственную конфигурацию, вы можете использовать файл Web.Test.Config для применения любых необходимых преобразований, которые позволят вам определить, должны ли выполняться тесты или нет.

Оба подхода описаны в this article.

Как правило, моя рекомендация заключалась бы в том, чтобы не полагаться на файлы, которые отсутствуют при выполнении тестов. Это также заставит приложение работать в любой среде CI. Включение файла в качестве встроенного ресурса, как вы описываете, является опцией, но также должно быть возможным включить его в свой проект с свойством Build Action, установленным в Content, и оно будет доступно в выходном каталоге.

+1

if ("Test" == ConfigurationManager.AppSettings ["Environment"]) { Assert.Ignore ("Ignored on AppHarbor"); } – harriyott

0

Хотите добавить к ответу @runesorensen: Каждый тестовый проект, в который вы хотите проигнорировать тесты, должен иметь файл app.config, иначе настройка приложения «Окружающая среда» будет равна нулю.

Смежные вопросы