Код модульного тестирования для Azure - PullRequest
4 голосов
/ 20 июля 2010

У меня есть приложение Azure, и недавно я без ума от настроек приложения. Я осознал, что включение практически всех необходимых мне параметров в ServiceConfiguration было очевидным способом пойти на все, что вы могли бы даже удаленно изменить на лету; Это означает, что URL-адреса веб-служб, информация о хосте smtp и т. д. находятся в моей конфигурации службы.

Представьте себе мой сюрприз, когда после внесения изменений я попытался запустить свои более 200 модульных тестов, только чтобы сразу получить эту ошибку:

Почему я получаю SEHException при вызове RoleEnvironment.GetConfigurationSettingValue ("MYKEY")?

Очевидно, у меня есть несколько вариантов ...

-Я могу написать свой собственный небольшой класс, используя RoleEnvironment.IsAvailable (), чтобы проверить, откуда я должен получать свои настройки, и получить их из app.config, если я не в лазурном.

-Я мог бы развернуть свое приложение в тестовой среде и просто протестировать внешние интерфейсы.

Но есть ли "встроенный" способ? Существуют ли какие-либо обновления в модуле модульного тестирования, которые позволили бы мне протестировать точный код, который выполняется (в среде, в которой он будет выполняться, и с настройками, которые будут развернуты)?

Ответы [ 3 ]

6 голосов
/ 15 февраля 2013

Начиная с выпуска Azure за июнь 2012 года, вы можете использовать CloudConfigurationManager - он проверяет файлы .cscfg и .csdef, если они доступны, в противном случае считывает из раздела appSettings app.config или Web.config:

<configuration>
  <appSettings>
    <add key="Foo" value="Bar" />
  </appSettings>
</configuration>

Тогда в коде:

CloudConfigurationManager.GetSetting("Foo")
2 голосов
/ 05 сентября 2012

Вы можете запустить эмулятор в [Assembly Initialise] тестового проекта.

ProcessStartInfo start = new ProcessStartInfo 
{                                             
    Arguments = "/devstore:start",                                             
    FileName = @"C:\Program Files\Windows Azure Emulator\emulator\csrun.exe"                        
};

для более подробной информации эти две ссылки могут помочь http://andrewmatthewthompson.blogspot.nl/2011/12/deploying-packages-to-azure-compute.html

для проверки хранения: http://www.neovolve.com/post/2012/01/12/Integration-testing-with-Azure-development-storage.aspx

2 голосов
/ 26 июля 2010

Насколько я знаю, в платформе тестирования нет встроенного способа для проверки того, какую версию параметров конфигурации вы должны использовать. Я использую класс-оболочку, подобный тому, который вы описываете (который, я уверен, вы уже знаете, легко написать), но в основном для того, чтобы мы могли запускать наши веб-сайты вне структуры dev.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...