Если вы хотите избежать использования файла runsettings, вы можете использовать этот обходной путь. Один из рекомендуемых способов передачи параметров - через переменные среды. Итак, в вашем файле C # nunit (или xunit) вы можете сделать что-то вроде:
// in mytest.cs
var user = Environment.GetEnvironmentVariable("TestUser");
var password = Environment.GetEnvironmentVariable("TestPassword");
var url = Environment.GetEnvironmentVariable("TestUrl");
Если вы не хотите окончательно устанавливать переменные среды, помните, что вы всегда можете установить их временно только для процесса сеанса. Один из способов сделать это - создать простой файл cmd
#launchtests.cmd
SETLOCAL
SET TestUser='pete001'
SET TestPassword='secret'
SET TestUrl='http://testserver.local/login'
DOTNET TEST mytest.csproj
А теперь самое интересное. Вы можете параметризовать каждый аспект этого. Таким образом, вы можете изменить его на:
#run wity launchtests.cmd pete001 secret 'http://testserver.local/login'
SETLOCAL
SET TestUser=%1
SET TestPassword=%2
SET TestUrl=%3
DOTNET TEST mytest.csproj
Или, если вы хотите запустить тест из конвейера Azure DevOps (fka VSTS или TFS), вы можете просто использовать нотацию $ (...) для встроенных переменных, даже если они помечены как секретные и / или поступают из Azure KeyVault. .
#In Azure DevOps, variables not marked as secret are already added to the environment
SET TestPassword=$(TestPassword)
dotnet test $(Build.SourcesDirectory)\MyCompany.MyProduct.UITests\MyTest.csproj --configuration $(BuildConfiguration) --collect "Code Coverage" --logger trx --results-directory $(Agent.TempDirectory)
![запустить командную задачу Azure DevOps](https://i.stack.imgur.com/Z63xh.png)
person
realbart
schedule
24.08.2019