У меня есть тестовая установка, написанная на javascript с использованием cucumber и webdriverio.
Я определяю свой тестовый сценарий в моих файлах объектов: example1.feature и example2.feature
Mx файл example1.feature выглядит следующим образом:
Feature: Submit search term
As a user who is logged in
I want to submit a search term
Because I want to see the search results
Background:
I am logged in
And I am on the search view
Scenario outline:
When I enter and submit the search term <someString>
Then I can see the results of <someString>
Examples:
|someString|
|bananas|
Это отлично работает, мои переменные выбираются example1.page.js и example1.steps.js
ТеперьЯ хочу использовать этот набросок сценария из example1.feature (включая переменную someString) в моем example2.feature (а также для example3.feature, example4.feature, ...)
Мой example2.feature выглядит такthis:
Feature: Navigate to details page
As a user who is logged in
I want to submit a search term
Because I want to see the details of my search term
Background:
I am logged in
And I am on the search view
Scenario outline:
When I enter and submit the search term <someString>
Then I can see the results of <someString>
When I click on the details
Then I get redirected to the details page
Examples:
|someString|
|bananas|
Я пытаюсь повторно использовать части из example1.page.js, но это нарушает мой тест.Ни example1 больше не работает, ни example2.Когда я удаляю example2, example1 работает.Я попытался удалить и переименовать (someString и бананы);это не работает.
Два способа, которые я нашел для решения этой проблемы, - это скопировать целые части из example1 в example2 (включая локаторы и части из page.js) или включить example2 в example1 (чтобы увеличить example1).
Однако, поскольку я хочу повторно использовать эту часть кода также в example3 и example4 и т. Д., Я не очень доволен копированием всего и созданием одного гигантского тестового примера ...
Кто-нибудь может придумать решение, чтобы решить эту проблему лучше?