Использование ранее созданных сценариев, как вложенные сценарии

add

#1

Добрый день!
Есть набор feature файлов, каждый из которых содержит в общем случае по несколько сценариев. Есть желание сделать сценарий, в котором можно было бы использовать ранее созданные сценарии, в качестве вложенных сценариев, в том числе из разных файлов.
На основании того, что я знаю - предлагается использовать тэг @tree: и копировать туда из разных файлов шаги, группируя их.
Или я чего-то не знаю?

Например, у меня есть набор сценариев разложенных по файлам
    Фича1.feature
        Сценарий 1
        Сценарий 2
    Фича2.feature
        Сценарий 3
        Сценарий 4

Я хочу сделать 
    Сценарий 6
         Сценарий 2
         Сценарий 1
         Сценарий 4
         Сценарий 3

С какой стороны к этому лучше подойти?


#2

@ExportScenarios тебе в помощь


#3

Большое спасибо за ключевое слово.
Решение тут


#4

Использование экспортных сценариев - вообще супер получается.
Один из сценариев у меня определен как “Структура сценария” с примерами. Он у меня автоматически не подхватился. Отсюда вопрос - это нормальное поведение или я что-то делаю не так?

Как пример у меня есть файл:
        Фича1.feature
            Сценарий: Сценарий 1
            Структура сценария: Сценарий 2
            Примеры:
                Пример 1
                Пример 2

    Когда я делаю файл
        Фича2.feature
            Сценарий 1
            Сценарий 2
    и открываю файл Фича2.feature  в обработке VB, тогда
    в списке у меня появляется Сценарий 1 (разложенный по шагам из первого файла) 
    и Сценарий 2 - как снипет с неопределенной обработкой вызова.

#5

По ходу попыток использования возник ещё один нюанс, который я заметил. У нас возможна feature, в которой собраны сценарии и для них выделен общий контекст.
Для использования этих сценариев в отдельном feature файле получается, что нужно восстанавливать этот контекст.
Мне кажется, что было бы логично при переносе экспортных сценариев повторять шаги контекста. Иначе я должен учитывать, что для экспортных сценариев мне придется не выделять контекст в исходных feature файлах.

Как пример у меня есть
    Фича1.feature
            Контекст: Общий контекст для сценариев 1 и 2
            Сценарий 1
            Сценарий 2
    Фича2.feature
            Сценарий 3
            Сценарий 4

    Когда я делаю файл
        Фича2.feature
            Сценарий 3
            Сценарий 2
то я ожидаю, что при выполнении Сценария 2 у меня будут так же выполнены шаги

контекста “Общий контекст для сценариев 1 и 2”


#6

Сейчас нельзя структуру сценария сделать экспортной. Только простые сценарии.
В такие сценарии можно передавать параметры. Вот инструкция:


#7

Я, честно говоря, не думал про контексты этих сценариев. Предполагалось, что эти сценарии небольшие. И что им не нужен контекст.


#8

Возможно, что контекст для экспортных сценариев - это уже действительно лишнее.

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

Например, у меня есть .feature файл: "ПримерЭкспортныхСценариев"

@ExportScenarios

Сценарий: Пример непараметризированного сценария

	Когда я нажимаю на кнопку "Создать"
	Тогда открылось окно "Пользователь (создание)"
	И     в поле "Полное имя" я ввожу текст "Администратор"
	И     я нажимаю на кнопку "Записать и закрыть"

Сценарий: Пример с параметром "Парам1"
	Когда я нажимаю на кнопку "Создать"
	Тогда открылось окно "Пользователь (создание)"
	И     в поле "Полное имя" я ввожу текст "Парам1"
	И     я нажимаю на кнопку "Записать и закрыть"

И есть второй feature файл, где используются эти сценарии: "ИспользованиеЭкспортныхСценариев"

@ExportScenarios
Сценарий: Использование экспортных и параметризированных сценариев

	Когда Пример непараметризированного сценария
	Тогда Пример с параметром "Парам1"

    Когда я открываю файл "ИспользованиеЭкспортныхСценариев", тогда Шаг 
    Тогда открылось окно "Пользователь (создание)" 
для первого сценария открывается как 
    Тогда открылось окно "Пользователь (создание)", 
а для параметризированного сценария 
    Тогда открылось окно "Пользователь создание".

В чем может быть подвох? Скобки нужно каким-то спецсимволом отражать?


#9

Параметризированные сценарии пока не поддерживаются. Плюс если я не ошибаюсь, они не поддерживаются самой спецификаций gherkin4


#10

эмм. а это тогда что?)


#11

Я же написал, “пока” :slight_smile: вроде бы @PrMex ещё не вливал это в девелоп.


#12

Вопрос - что скажет Sonar на это дело :wink: Точнее Gherkin 4


#13

По-моему уже там. По крайней мере уже используем и брали из develop’а)


#14

Я запутался. Пока что получается следующая ситуация (резюмируя):
Если я хочу переиспользовать сценарии, тогда:

  1. Сценарий не должен быть в виде структуры сценария с примерами. На каждый набор параметров должен быть написан отдельный сценарий.
  2. Контекст для таких сценариев должен быть включен в сам сценарий
  3. Передача параметров в сценарий задумана, но не реализована (по крайней мере в рабочем варианте).

Либо я могу:

  1. Допилить, чтобы п.1 и/или п.3, чтобы они заработали без ошибок
  2. Писать код в обработке для таких шагов.

Поправьте, пожалуйста, если я что-то упустил.


#15

Передача параметров в сценарий поддерживается. )))
Всё что выложено а автодоках - всё реализовано.


#16

Скобки могли исчезать из-за ошибки парсера, которую я недавно поправил.
Обновитесь и проверьте на свежей версии.
Если не исправилось - пишите.


#17

Только что выпустил обновление, которое фиксит работу структуры сценария с тегами.

  1. Сценарий не должен быть в виде структуры сценария с примерами. На каждый набор параметров должен быть написан отдельный сценарий.
    Можно и структуру, можно и обычный сценарий.
  2. Контекст для таких сценариев должен быть включен в сам сценарий
    Сейчас - да
  3. Передача параметров в сценарий задумана, но не реализована (по крайней мере в рабочем варианте).
    Реализована. Если не понятно как это работает - спрашивайте

#18

Обновился.

Со скобками проблема действительно исчезла.

Структура сценария в качестве экспортного сценария, к сожалению, не видна (пустое поле “Обработка вызова”)

Параметризованные сценарии экспортируются и работают с передаваемыми параметрами.

Попробовал использование передачу параметров в сценарий. Вроде бы разобрался, как работает. Возникла проблема, причину которой не смог понять:
У меня есть файл фичи:

@ExportScenarios
...
Сценарий: Пример тестового сценария с "ИмяПараметра"
...
В форме "Группы доступа физических лиц" в таблице "Список" я перехожу к строке:
	| 'Код'    | 'Наименование' |
	| '00-001' | "ИмяПараметра"     |
....

В другом файле я вызывают этот сценарий в виде шага:

    ...
    Когда Пример тестового сценария с "Мой параметр"
    ...

Пои открытии в обработке VB у меня всё на первый взгляд заполняется нормально, но при выполнении этого шага в форме пишет, что не может позиционироваться на нужной строке.

При этом если я руками прописываю в сценарии:

В форме "Группы доступа физических лиц" в таблице "Список" я перехожу к строке:
	| 'Код'    | 'Наименование' |
	| '00-001' | "Мой параметр"     |

тогда всё работает корректно.


#19

Видимо произошло недопонимание.
Экспортировать сейчас можно только обычные сценарии.
То что структура сценария не видна снаружи - так и должно быть.
Я создал задачу для обсуждения данного вопроса

В обычные сценарии параметры передаются, но вот передачу параметра в таблицу я не учел.
Сделаю. Создал задачу