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

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

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

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

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

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

Спасибо! Глен

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


person Glen Little    schedule 22.02.2012    source источник


Ответы (2)


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

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

Оба подхода описаны в этой статье.

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

person runesoerensen    schedule 22.02.2012
comment
if (Test == ConfigurationManager.AppSettings[Environment]) { Assert.Ignore(игнорируется в AppHarbor); } - person harriyott; 21.05.2012

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

person Mikhail Brinchuk    schedule 14.03.2013