У меня есть базовый тестовый класс, в котором я устанавливаю переменную среды с именем ENVIRONMENT:
using NUnit.Framework;
internal abstract class BaseTestClass
{
[OneTimeSetUp]
public void InitializeBaseSuite()
{
System.Environment.SetEnvironmentVariable("ENVIRONMENT", "MyValue");
}
}
И в производном тесте я инициализирую некоторый класс с именем TestTasks
, который внутренне считывает эту переменную, чтобы узнать, какая среда ее Проблема заключается в том, что, если я инициализирую этот класс TestTasks
следующим образом:
internal class TestClass : BaseTestClass
{
private TestTasks Tasks { get; } = new TestTasks();
}
он не может найти и прочитать переменную (я поместил оператор отладки в конструктор TestTasks
, чтобы увидеть, если он может прочитать переменную оттуда во время создания экземпляра).
Однако, если я делаю это так (и чего я действительно хочу избежать):
internal class TestClass : BaseTestClass
{
private TestTasks Tasks => new TestTasks();
}
, это работает.
Почему он не может прочитать переменную при первой инициализации? И что я могу сделать, чтобы передать какое-то значение глобально из однократной настройки в базовом классе во все производные тестовые классы?