Как прочитать тестовый параметр .runsettings в фикстуре xUnit

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

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

Обновить

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

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

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

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

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


person user1672994    schedule 04.03.2019    source источник


Ответы (2)


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

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

person Asbjørn    schedule 29.03.2019

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

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

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

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

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

person user1672994    schedule 09.03.2019