Существует способ использовать пользовательский тег для игнорирования теста, но вам нужно будет использовать внутренний интерфейс specFlow IUnitTestRuntimeProvider
и записать logi c в привязке, чтобы игнорировать тест во время выполнения.
В файле объектов
@ignore
Scenario: mobile scenario
Given some common step for web and mobile
В классе привязки BindingClass
public static ScenarioContext _scenarioContext;
Конструктор класса привязки
public BindingClass(ScenarioContext scenarioContext)
{
_scenarioContext = scenarioContext;
}
А вот привязка
[Given(@"some common step for web and mobile")]
public void someTest(){
if (BindingClass.scenarioContext.ScenarioInfo.Tags.Contains("ignore"))
{
var unitTestRuntimeProvider = (IUnitTestRuntimeProvider)
RediTestControl._scenarioContext.GetBindingInstance((typeof(IUnitTestRuntimeProvider)));
unitTestRuntimeProvider.TestIgnore("ignored");
}
else {
//initiate appium driver or webDriver
}
}
Это будет игнорировать тест, если он обнаружит тег @ignore
в сценарии в файле объектов. Вы можете по-прежнему иметь другие теги в сценарии. Он будет игнорировать тест, только если найдет @ignore
. Для веб-сценария ios вы можете просто удалить @ignore
Scenario: web scenario
Given some common step for web and mobile