тестирование конфигурационных файлов в непроизводственной среде - PullRequest
3 голосов
/ 23 мая 2011

Каков наилучший способ тестирования только файлов конфигурации производства перед их развертыванием в produciton?

Файлы конфигурации для непроизводственной среды можно легко протестировать в соответствующих средах.Но как можно протестировать производственную среду перед производственным развертыванием?

Например, имя БД в STAGE отличается от имени БД в prod.

Что если конфигурационный файл STAGE имеет правильное имя БД и все в порядке?Теперь в файле конфигурации prod есть «опечатка» в файле конфигурации.Эта опечатка не будет обнаружена, пока не будет запущена в производство.

Есть ли способ проверить этот файл конфигурации с ошибкой опечатки, прежде чем он поступит в производство?

спасибо

Ответы [ 4 ]

3 голосов
/ 23 мая 2011

Метод, который используется в некоторых случаях, заключается в том, чтобы иметь промежуточную среду, которая во всех отношениях идентична вашей производственной среде.

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

1 голос
/ 23 мая 2011

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

Вы должны иметь PREPROD или STAGING или PROD-подобную среду , где развертывание точно такое же, как PROD с идентичными конфигурационными файлами, за исключением некоторых значений, таких как информация о машине.Развертывание в PREPROD дает вам уверенность в таких случаях, что с настройкой PROD все в порядке.

Вышеприведенные два должны вам очень помочь.Вы также можете посмотреть на развертывание AB или Blue-Green развертывание

0 голосов
/ 23 мая 2011

В appSettings в файле web.config я использую этот ключ:

<add key="CurrentEnvironment" value="0"/>
<!--        
    Public Enum Environments
       Development = 0          
       Alpha = 1                
       ReleaseCandidate = 2    
       Production = 3           
    End Enum
-->

И как вы можете видеть в моих комментариях, это соответствует Enum в моем классе Helpers.vb, который используется следующим образом:

Public Shared CurrentEnvironment As Environments = DirectCast(WebConfigurationManager.AppSettings("CurrentEnvironment"), Environments)

Это позволяет вам писать код для конкретной среды, такой как URL, соединения с базой данных и т. Д.

Я нашел это очень полезным.

- извините за код VB.NET, но я уверен, что вы можете легко скрыть -

РЕДАКТИРОВАТЬ на основе редактирования OP:

Почему бы вам не создать Проект модульного тестирования ?

0 голосов
/ 23 мая 2011

Вероятно, лучший способ достичь этого - создать отдельный веб-сайт в вашей производственной среде в качестве «этапа». Затем вы можете сначала перенести новую конфигурацию на этот сайт, чтобы протестировать ее и, если все выглядит нормально, перенести ее на реальный рабочий сайт. В противном случае вы не можете быть уверены, что он будет работать так же, как на рабочем сервере.

...