2015-04-18 2 views
0

Мое веб-приложение зависит от переменной среды. Я написал модульный тест, чтобы переменная окружения не была нулевой. Тест проходит на моей локальной машине, потому что, конечно, я помещаю переменную окружения в свои системные переменные. Мне пришлось перезапустить Visual Studio, чтобы он распознал переменную окружения. Но тест терпит неудачу, когда он построен с использованием CI в облаке. Планируется развертывание TFS Build в промежуточной среде, а переменная окружения присутствует в промежуточной среде, а также в рабочей среде. Если он будет успешным, он развернет его в промежуточную среду и затем автоматически сменит с производством. Но это далеко не так, потому что единичный тест терпит неудачу. Является ли тестирование единицы в среде, отличной от фактического веб-сайта? Если это так, я должен изменить мою тестовую стратегию, чтобы не тестировать переменные среды. Я могу сделать страницу статуса приложения, чтобы проверить такие вещи. Но я задавался вопросом, знает ли кто, что было на этом.Я не могу определить переменную среды из моего модульного теста

ответ

1

Пользовательская переменная среды, которая у вас есть на вашей персональной машине, также должна находиться на контроллере сборки. TFS Build запускается на контроллере (внутренние агенты), а модульные тесты запускают пост-сборку двоичного кода (встроенная часть сборки перед упаковкой)

Проверьте, можно ли добавить переменную окружения в контроллер сборки. Вероятно, вам нужно будет связаться с командой Build и получить эту переменную среды, добавленную на сервере Build.

У вас также есть выбор «Pass сборки, если тест устройство не»

Можно также классифицировать тест блока и установить приоритеты и работать только единичные испытания определенного приоритета; как приоритет 1. Вы устраняете случай, который не является частью приоритета единичного теста, который вы хотите запустить.

Надеюсь, что это поможет!

+1

Теперь, когда вы это говорите, это кажется настолько очевидным. Тесты модулей выполняются на контроллере сборки. Это отличается от машины, на которой размещено приложение. Я считаю, что моя стратегия тестирования переменных окружения в модульных тестах по своей сути ошибочна. Я перестану пытаться использовать модульные тесты для тестирования конфигурации платформы и интеграции. –

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