Я ищу установку SpecFlow для различных уровней тестов, и в качестве части этого я хочу иметь возможность фильтровать те тесты, которые выполняются.пропустить спецификации specflow при определенных условиях
Например, я хочу выполнить полный прогон GUI, где я создаю зависимости для тестирования GUI в среде dev и запускаю все спецификации tagged @gui с шагами, выполняемыми через gui. Также из того же сценария я хочу запускать теги с меткой @smoke и настраивать любые зависимости, необходимые для развернутой среды, с шагами, выполняемыми через api.
Я знаю, что вы можете фильтровать теги при запуске бегуна specflow, но мне также нужно изменить способ работы каждого теста в контексте тестового прогона. Кроме того, я хочу, чтобы это изменение поведения было переключено с помощью одной конфигурации/командной строки arg при запуске на сервере сборки.
Итак, до сих пор мое решение состояло в том, чтобы иметь конфигурацию сборки для каждого типа тестового прогона и преобразовывать конфиги, чтобы я мог вводить поведение в specflow при запуске тестового запуска. Но я не уверен в правильном способе фильтрации по тегу.
я мог бы сделать somethig так:
[BeforeFeature]
public void CheckCanRun()
{
if(TestCannotBeRunInThisContext())
{
ScenarioContext.Current.Pending();
}
}
Я думаю, что это будет работать (он не будет запускать функцию), но тест все равно приходят на мои результаты тестов, которые были бы грязным, если я m, отфильтровывая большинство тестов с помощью моего тега. Если есть способ, который я могу сделать, чтобы полностью удалить эту функцию?
как вы проводите тесты, если вы не хотите запускать эти тесты? Использование встроенного VS runner? Из командной строки? На сервере сборки? –
@SamHolder как во время разработки с использованием тестового бегуна resharper, так и на сервере CI (с разной конфигурацией на разных уровнях сборки), а также, если возможно, несколько спецификаций на развернутом сервере для проверки того, что развертывание прошло нормально ... –