Как указать детали подключения для модульных тестов SSDT при запуске в Azure Devops yaml build pipe - PullRequest
0 голосов
/ 01 апреля 2020

Я использую модульные тесты SSDT для своего проекта базы данных. Они запускаются без проблем из Visual Studio.

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

System.Data.SqlClient.SqlException: System.Data.SqlClient.SqlException: 110003; Неверный пользователь или пароль.

Ямл для мой тест выглядит следующим образом:

- task: VSTest@2
  inputs:
        testSelector: 'testAssemblies'
        testAssemblyVer2: |
          **\*test*.dll
          !**\*TestAdapter.dll
          !**\obj\**
        searchFolder: '$(System.DefaultWorkingDirectory)'

Есть ли что-то конкретное, что нужно go в файле app.config, чтобы это заработало? Примечание. Я использую SQL аутентификацию.

1 Ответ

1 голос
/ 02 апреля 2020

Если модульные тесты SSDT подключаются к серверу базы данных на вашем локальном компьютере, конвейер azure devops завершится сбоем, поскольку размещенные агенты не смогут установить связь с вашим локальным компьютером.

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

Если вы используете другой облачный сервер базы данных, например azure sql server. Вы можете проверить правильность connectionString в App.config и указать правильные ID пользователя и Password . Строка connectionString в файле app.config выглядит следующим образом:

enter image description here

Если вы хотите избежать сохранения конфиденциальной информации в строке подключения в app.config. Вы можете сохранить connectionString в секретной переменной в своем конвейере.

И использовать токены connectionString="#{sqlDbTestConnectionString}#" в app.config вместо реальных строк подключения.

Затем добавьте заменить задачу токена перед задачей VsTest в своем конвейере, чтобы заменить токены #{sqlDbTestConnectionString}# в app.config на реальную connectionString, определенную в секретной переменной.

You можете проверить этот блог для получения дополнительной информации.

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