Как прочитать тестовый параметр .runsettings в приборе xUnit - PullRequest
0 голосов
/ 04 марта 2019

Я пишу xUnit блок-тестов для dotnet core приложения, которое использует DocumentDB (CosmosDB) в качестве хранилища.Модульный тест написан для выполнения на локальном эмуляторе космоса ДБ .В среде сборки Azure DevOps я настроил задачу *1000* CI / CD Azure Cosmos DB , которая внутренне создает контейнер для установки эмулятора.Тем не менее, я не могу понять, как конечная точка эмулятора может быть передана в устройство xUnit?

Есть ли способ, которым устройство xUnit может прочитать параметры теста .runsettings или параметры, которые могут быть переданы черездругой источник?

Обновление

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

Ниже приведен снимок экрана, показывающий, как задачи сборки настроены в настоящее время как обходной путь для достижения желаемого: enter image description here

И код для чтения значения как

var serviceEndpoint = Environment.GetEnvironmentVariable("CosmosDbEmulatorEndpointEnvironmentVariable");

Поскольку задача UnitTest предоставляет возможность передавать .runsettings / .testsettings с возможностью переопределения параметров тестового прогона, поэтому считал, что чего-то можно достичь с помощью этихопции.

Ответы [ 2 ]

0 голосов
/ 29 марта 2019

Это не поддерживается в xUnit.

См. Ответы SO здесь и здесь и эта проблема github , указывающая, что это не такчто-то, что будет поддерживаться в xUnit.

0 голосов
/ 09 марта 2019

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

Ниже приведен снимок, показывающий, как задачи сборки в настоящее время настраиваются как обходной путь для достижения желаемого: enter image description here

И код для чтения значения как

var serviceEndpoint = Environment.GetEnvironmentVariable("CosmosDbEmulatorEndpointEnvironmentVariable");

Поскольку задача UnitTest предоставляет возможность передавать .runsettings / .testsettings с возможностью переопределения параметров тестового прогона, так что считал, что чего-то можно достичь с помощью этихопции.

...