У меня есть класс с именем "RollbackManager
", он используется для добавления некоторых действий из тестов и выполнения всех действий после тестов.
Я использую SpecFlow для своих тестов, поэтому для выполнения чего-либо после тестов я использую [AfterScenario]
hook.
Проблема в следующем: Я не могу заставить RollbackManager
будьте статичны, когда я запускаю тесты параллельно!
Вопрос: как я могу получить доступ к экземпляру класса RollBackManager, который был создан в определении шага SpecFlow из ловушек?
Моя текущая структура проекта:
Базовый класс с RollbackManager:
public class StepBase : Steps
{
public RollbackManager RollbackManager { get; } = new RollbackManager();
protected new ScenarioContext ScenarioContext { get; set; }
public StepBase(ScenarioContext scenarioContext)
{
RollbackManager = new RollbackManager();
}
}
Пример класса определения шага:
[Binding]
public sealed class ThenExport : StepBase
{
public ThenExport(ScenarioContext scenarioContext) : base(scenarioContext)
{
}
[Then(@"export status should contain entities: ""(.*)""")]
public void ThenExportStatusShouldContain(List<String> commaSeparatedList)
{
RollbackManager.RegisterRollback(() => Console.WriteLine());
}
}
Мой класс с крючками:
[Binding]
public sealed class SpecFlowTestsBase
{
[AfterScenario]
public void AfterScenario()
{
// here I need my rollbacks craeted in steps
}
}