Как передать секреты в контекст выполнения теста из VSTS - PullRequest
0 голосов
/ 11 мая 2018

Значения, которые необходимо передать в контекст выполнения теста, обычно передаются через «переменные» в VSTS.Обычно они отображаются как переменные среды.

Эти значения, возможно, необходимо хранить в секрете (секрет клиента от участника службы, пароль и т. Д.).Однако если вы нажмете кнопку «блокировка» в окне VSTS Variables для данной переменной, она не будет экспортирована в контекст выполнения теста как переменная среды (в отличие от несекретных переменных), по замыслу .

Как передать секретные переменные и получить их в тесте?

1 Ответ

0 голосов
/ 11 мая 2018

Секретные переменные должны передаваться в качестве параметров процессу vstest.exe как «параметры запуска теста».Они будут подставлены в значения из файла .runsettings во время выполнения теста.

Шаги высокого уровня:

  1. Добавление файла .runsettings в проект Visual Studio
  2. Получите секретное значение в вашем коде C #
  3. Создайте переменную сборки VSTS для своего секрета
  4. Настройте тестовое задание VSTS на использование созданного вами файла .runsettings
  5. Явно передайте переменную сборки, используя то же имя, что и ключ файла .runsettings

Добавьте файл .runsettings

  1. Создать файл XML с расширением "runsettings "(* .runsettings) и добавьте его в свой проект
  2. Добавьте следующий XML-файл в файл.Обратите внимание, что не имеет значения, какое значение вы устанавливаете.Это все равно будет отменено тестовым заданием VSTS.Задайте для него фиктивное значение или значение, которое приведет к локальному успешному выполнению теста.

    <?xml version="1.0" encoding="utf-8"?>
    <RunSettings>
        <TestRunParameters>
            <Parameter name="CLIENT_SECRET" value="secret" />
        </TestRunParameters>
    </RunSettings>
    

Получите секретное значение из кода теста

  1. Добавьте открытое свойство "TestContext" в ваш тестовый класс.Это значение будет установлено тестом во время выполнения. Обратите внимание, что это свойство ДОЛЖНО БЫТЬ названо TestContext.

    public TestContext TestContext { get; set; }
    
  2. Получить ваш секрет из переменной TestContext

    string clientSecret = TestContext.Properties["CLIENT_SECRET"].ToString();
    

Создание переменной сборки VSTS для вашего секрета

  1. Перейдите к определению сборки
  2. Нажмите «Изменить определение сборки»
  3. Нажмите «Переменные»
  4. Нажмите «Добавить»
  5. Назовите свою переменную и установите ее значение
  6. Нажмите значок блокировки в конце поля «Значение», чтобы установить значение секретно

Настройте тестовое задание VSTS на использование созданного вами файла .runsettings

  1. Перейдите к определению сборки
  2. Нажмите "Изменить определение сборки"
  3. Нажмите кнопкуКнопка «Задачи»
  4. Выберите свою «тестовую» задачу (или добавьте одну, если ее нет)
  5. Установите «Файл настроек» в свой файл .runsettings

    $/project/unitTest.runsettings
    

Явно передайте переменную сборки, используя то же имя, что и ключ файла .runsettings

  1. Перейдите к определению сборки
  2. Нажмите «Изменить определение сборки»
  3. Нажмите кнопку «Задачи»
  4. Выберите свою «тестовую» задачу
  5. В диалоговом окне «Переопределить параметры запуска теста» добавьте следующее (соответствует написанию / регистру ключа, который вы указали в файле .runsettings для имени аргумента и написанию / регистру тестовой переменной, добавленной вами в определение сборки.для значения):

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