У меня есть набор тестов, в котором используется среда отчетов о тестировании, которая мне нужна для запуска через базовый класс, все работает нормально, но [BeforeScenario] вызывается 10 раз для каждого запускаемого мной сценария, 1 раз для каждой функции в моем Как ни странно, демонтаж запускается только один раз.
Вот как выглядит мой базовый класс:
[Binding]
public class BaseStep : AllureReport
{
public DriverSupport _support;
public BaseStep(DriverSupport support)
{
_support = support;
}
[BeforeScenario]
public void Setup(FeatureContext context)
{
_support.startDriver();
AllureLifecycle.Instance.RunStep(() =>
{
TestContext.Progress.WriteLine(
$"Test \"{TestExecutionContext.CurrentContext.CurrentTest.FullName}\" is starting...");
});
}
[AfterScenario, Order(0)]
private void TearDown()
{
AllureLifecycle.Instance.RunStep(() =>
{
TestContext.Progress.WriteLine(
$"Test {TestExecutionContext.CurrentContext.CurrentTest.FullName}\" is stopping...");
});
}
И вот так выглядит мой файл шага функции (их 10)
[Binding]
public class TestSteps1:BaseStep
{
public TestSteps1(DriverSupport support) : base(suppprt)
{
}
[Given(@"user goes to (.*)")]
public void GivenUserGoesTo(string p0)
{
_support.driver.GoToUrl(p0)
}
Когда я запускаю только ОДИН сценарий в функции, она печатает стартовый драйвер и печатает "тест xxx запускается ..." 10 раз, по одному разу для каждой имеющейся функции, я просто хочу, чтобы он запускался один раз.
Я думал о переходе до сценария к самим классам шагов, но многие из моих функций используют шаги из нескольких файлов шагов, поэтому я думаю, что это будет проблемой. Есть ли способ сделать так, чтобы он запускался перед сценарием только один раз за сценарий?