Мне удалось построить несколько довольно простых тестов, в которых не используется структура объектной модели страницы. Шаги Specflow будут просто вызывать методы драйвера (такие как поиск элемента на странице и утверждение текста правильно).
В тестах используется NUnit, и мне удалось добавить параллельное выполнение, добавив [Parallelizable (ParallelScope.Fixtures)] в класс сборки для решения. Это хорошо работает, но отчеты, которые приходят из NUnit, немного грязные, и я хотел бы получить больше полезной информации о них (например, скриншоты).
С тех пор я добавил отчеты об экстентах в решение, хотя это нормально работает, когда тесты выполняются последовательно, при параллельном запуске их появляется сообщение об ошибке.
The FeatureContext.Current static accessor cannot be used in multi-
threaded execution. Try injecting the feature context to the binding
class.
Шаги Context.Current используются при создании отчетов Extent. Я читал документацию, касающуюся многопоточности, с сайта Specflow, но у меня возникают проблемы с пониманием концепции и выяснением того, как я могу внедрить FeatureContext в класс привязки. Я пытаюсь следовать этому примеру с сайта:
[Binding]
public class StepsWithScenarioContext : Steps
{
[Given(@"I put something into the context")]
public void GivenIPutSomethingIntoTheContext()
{
this.ScenarioContext.Set("test-value", "test-key");
}
}
Я также пытался следовать другим примерам, но мне еще не удалось увидеть какую-либо документацию, касающуюся использования ScenarioContext с чем-то вроде driver.findElement (By.Id ("blah")).
Буду признателен за любую помощь, я довольно новичок в автоматизации тестирования.