Библиотечные шаги, содержащие условия, выполняются не полностью

add

#1

Дано, есть следующий библиотечный сценарий, в нём есть шаги с ключевым словом Если:

#language: ru

@tree
@ExportScenarios
@IgnoreOnCIMainBuild

Функциональность: Прикладные сценарии

Как разработчик тестовых сценариев для УНФ
Я хочу организовать библиотеку операций
Чтобы структурировать основные сценарии

Сценарий: Я добавляю покупателя "НаименованиеПокупателя"
	Дано В командном интерфейсе я выбираю 'Продажи' 'Покупатели'
	И открылось окно 'Контрагенты: Покупатели'
	Если в таблице "Список" нет строки Тогда
		| Представление              |
		| "НаименованиеПокупателя" |
		Тогда Я создаю карточку покупателя
			Когда я нажимаю на кнопку с именем 'Создать'
			Тогда открылось окно 'Контрагент (создание)'
			И в поле 'В программе' я ввожу текст "НаименованиеПокупателя"
			И я нажимаю на кнопку 'Записать и закрыть'
			И я жду закрытия окна 'Контрагент (создание)' в течение 20 секунд

Сценарий: Я добавляю поставщика "НаименованиеПоставщика"
	Дано В командном интерфейсе я выбираю 'Закупки' 'Поставщики'
	И открылось окно 'Контрагенты: Поставщики'
	Если в таблице "Список" нет строки Тогда
		| Представление              |
		| "НаименованиеПоставщика" |
		Тогда Я создаю карточку поставщика
			Когда я нажимаю на кнопку с именем 'Создать'
			Тогда открылось окно 'Контрагент (создание)'
			И в поле 'В программе' я ввожу текст "НаименованиеПоставщика"
			И я нажимаю на кнопку 'Записать и закрыть'
			И я жду закрытия окна 'Контрагент (создание)' в течение 20 секунд

Сценарий: Я добавляю номенклатуру "НаименованиеНоменклатуры"
	Дано В командном интерфейсе я выбираю 'Продажи' 'Номенклатура'
	И открылось окно 'Номенклатура'
	Если в таблице "СписокЗапасы" нет строки Тогда
		| Наименование               |
		| "НаименованиеНоменклатуры" |
		Тогда Я создаю карточку номенклатуры
			Когда я нажимаю на кнопку с именем 'СоздатьНоменклатуру'
			Тогда открылось окно 'Номенклатура (создание)'
			И в поле 'Тип' я ввожу текст 'Запас'
			И в поле 'Наименование' я ввожу текст "НаименованиеНоменклатуры"
			И я нажимаю на кнопку 'Записать и закрыть'
			И я жду закрытия окна 'Номенклатура (создание)' в течение 20 секунд

И есть сценарий, который я составляю из библиотечных шагов:

#language: ru
@tree

Функциональность: Сценарий, состоящий из библиотечных шагов 

Как разработчик УНФ
Я хочу тестировать основные операции в различных комбинациях
Чтобы выявлять регресс на ранних стадиях разработки

Контекст:
	Допустим Я запускаю сценарий открытия TestClient или подключаю уже существующий

Сценарий: Подготовить данные для сценария
	Дано Я добавляю покупателя "Покупатель 20190408"
	И Я добавляю поставщика "Поставщик 20190408"
	И Я добавляю номенклатуру "Номенклатурная позиция 20190408"

Так вот, почему-то этот сценарий выполняется только для первой строки
Я добавляю покупателя "Покупатель 20190408":

А остальные шаги не выполняются:


#2

Хм… @artbear


#3

Кажется “Если” надо закрывать каким нибудь шагом. Попробуй закрыть Если шагом “И Пауза 1”.

Если 
   И Что то
   И Что то
И Пауза 0.1

А потом попробуй пауза заменить на “КонецЕсли” +)


#4

Я чот подумал, что ЕСЛИ в Gherkin не фэншуйно использовать. И вообще выпилил его )


#5

Думаю @lustin тут одобрительно кивает =) А @artbear радуется, что не надо поддерживать “Если”


#6

@Vladislav_Moroz отличное решение, одобрямс :slight_smile:

поделись, стало сложнее или проще?

текст фич, сценариев стал читабельнее?

общие впечатления от избавления от Если ?


#7

Тут нельзя сказать сложнее или проще.

Если говорить о выделении базовых блоков в библиотеку сценариев - то набор тестов становится менее кнопконажимательным, более читабельным и более управляемым (удобно параметризировать).

Сценарии с ключевым словом Если могут быть нестабильны и из-за этого опасны.

Вместо Если, на этапе отладки отдельных сценариев, удобно пользоваться тегами.