У меня есть набор модульных тестов в основном проекте .Net и с использованием файла runsettings. Я пытаюсь настроить Azure DevOps для автоматического тестирования моих развертываний. В рамках этого процесса мне нужно переопределить параметры из параметров запуска в командной строке.
У меня есть файл runsettings со следующим разделом:
<TestRunParameters>
<Parameter name="ApiUrl" value="https://myurl..." />
</TestRunParameters>
У меня есть статический конструктор, который сохраняет TestContext следующим образом:
[ClassInitialize]
public static void TestClassInitialize(TestContext context)
{
TestContext = context;
}
Я получаю настройки из TestContext следующим способом:
protected string GetStringSetting(string settingName)
{
return TestContext.Properties[settingName] as string;
}
Когда я запускаю тест с выбранным файлом runsettings, он получает TestContext, и я вижу, что запись ApiUrl успешно получена.
Теперь я хочу установить этот параметр из командной строки. Я использую команду как:
dotnet test <myproject.csproj> --configuration Release -- ApiUrl=https://newurl
Я получаю сообщение об ошибке, в котором говорится, что в словаре отсутствует ключ «ApiUrl», указывающий, что параметр не был обработан. Читая документацию, я подумал, что, возможно, мне нужно полностью указать имя параметра с помощью TestRunParameters.ApiUrl. Это дает мне ошибку XML.
Из всего, что я прочитал, я думаю, что делаю это правильно и не могу понять, что не так. Я использую инструменты версии 2.1.503.
Может кто-нибудь подсказать, как сделать эту работу?