#c# #selenium #specflow #specrun
#c# #селен #specflow #specrun
Вопрос:
У меня есть платформа Weba utomation, и я добавляю несколько сценариев для тестирования на уровне API. В моих перехватах «После шага» я хочу, чтобы он работал для тестирования уровня API по-разному. например, не переходите к умолчанию «После шага». Как я могу это сделать?
Я добавил тег на уровень функций и попытался использовать этот тег, но он по-прежнему остается старым Afterstep.
[AfterStep("@API1")]
public static void AfterSteps()
{
}
оригинальный последующий шаг
[AfterStep]
public static void AfterStep()
{
}
конечно, мне нужно изменить имя метода на «Последующие шаги» для моих новых последовательных перехватов.
Пожалуйста, помогите мне, что здесь не так?
Комментарии:
1. Можете ли вы подробнее объяснить, что делает перехват «AfterStep»? Возможно, вам лучше использовать a
Given
в начале вашего сценария или вместо этого добавить несколько шагов к aBackground
.2. @GregBurghardt: — Мой следующий шаг — это просто выход из браузера и очистка файлов cookie и кэша. Однако с тестами API мы не хотим открывать браузер. в моем Aftestep у нас есть класс Pagemanager, который будет вызывать браузер. так что, в основном, с тегом API я просто избегаю, чтобы мои тесты переходили на Afterstep по умолчанию. Дайте мне знать, если вам нужно больше объяснений? Также я на 100% уверен, что мне не нужны данные или фон.
Ответ №1:
В атрибуте вам не нужен @.
So сделает это:
[AfterStep("API1")]
Комментарии:
1. : — да, я понял, что нам не нужен @, и я удалил его. Однако мои тесты все еще проходят через оба перехвата aftestep. тот, у которого есть тег API, и тот, у которого его нет. Так что просто интересно, как мы можем это решить?
Ответ №2:
Если вы не хотите, чтобы ваш первоначальный последующий шаг выполнялся, когда установлена категория API1, используйте следующий код:
if(ScenarioContext.Current.ScenarioInfo.Tags.Contains("API1"))
{
return;
}