Вы можете установить тестовую среду с переменными среды. Environment.GetEnvironmentVariable () - метод для вызова переменных среды.
Вот пример:
Program.cs (в консольном приложении):
using System;
namespace TestEnvironmentVariable
{
class Program
{
static void Main(string[] args)
{
string testEnvironment = Environment.GetEnvironmentVariable("test_env");
Console.WriteLine($"Test environment: {testEnvironment}");
}
}
}
run.bat:
set test_env=uat
TestEnvironmentVariable.exe
При запуске run.bat:
>run.bat
>set test_env=uat
>TestEnvironmentVariable.exe
Test environment: uat
Вы также можете поместить все свои настройки в файл json, который вы используете в качестве файла конфигурации. Это также позволяет изменять настройки без необходимости компиляции. Вот небольшой пример:
Создайте файл json, например, settings.json:
{
"TestEnvironment": "UAT"
}
Может быть создано в корневой папке решения. В свойствах файла установите для параметра Копировать в выходной каталог значение Копировать всегда или Копировать, если новее . Это гарантирует, что он перемещен в каталог двоичного вывода.
Затем создайте файл Settings.cs, представляющий класс, для которого мы десериализовываем файл json:
namespace TestEnvironmentVariable
{
public sealed class Settings
{
public Settings() { }
public string TestEnvironment { get; set; }
}
}
Вы можете добавить больше переменных здесь, когда они необходимы. Файл json должен иметь те же переменные. А затем код, который делает десериализацию:
using System.IO;
using Newtonsoft.Json;
namespace TestEnvironmentVariable
{
public static class SettingsUtil
{
public static T GetObjectFromJsonFile<T>(string filename)
{
string json = File.ReadAllText(filename);
var deserializedObject = JsonConvert.DeserializeObject<T>(json);
return deserializedObject;
}
}
}
Вы должны добавить Newtonsoft.Json с NuGet. Затем мы можем прочитать файл json в нашем коде:
using System;
namespace TestEnvironmentVariable
{
class Program
{
static void Main(string[] args)
{
Settings settings = SettingsUtil.GetObjectFromJsonFile<Settings>("settings.json");
Console.WriteLine($"Test environment: {settings.TestEnvironment}");
}
}
}
Выход:
>TestEnvironmentVariable.exe
Test environment: UAT