Ранее писал тесты на java
, но возникла потребность в том, чтобы писать их на js
.
Чтобы задать "кастомный" путь до фич или до step_definitions
-файлов - в java
не возникало никаких проблем. В cucumber-js
же, проблема актуальна, точнее в документации о возможности конфигурирования путей нет ни слова.
Предлагаемая структура разработчиками:
features/
test.feature
support/
world.js
hooks.js
step_definitions/
test.js
Желаемая структура:
src/
features/
test/
test.feature # Сценарий
test.steps.js # "Шаги" для сценари
test.js # Объект страницы со всеми методами для "шагов"
helpers/
hooks.js
Соответственно, нужна возможность переопределить пути для steps_definitions
-файлов, без использования сторонних инструментов (wdio
, protractor
и тд) для запуска тестов.
Запуск произвожу так:
Хелпер для инициализации драйвера:
'use strict';
const webdriver = require('selenium-webdriver'),
chrome = require('chromedriver'),
{ setWorldConstructor } = require('cucumber');
const driver = new webdriver.Builder().forBrowser('chrome').build();
module.exports = { driver };
Тестовая фича:
#local-run
Feature: Работоспособность поиска google
Scenario: Поиск работает
Given Открыли страницу google
When Ввели поисковой зарос
| Tomato |
| Cucumber |
| Cabage |
Then Поиск выдал результаты
"Шаги" для тестовой фичи:
'use strict';
const { defineSupportCode } = require('cucumber');
defineSupportCode(({ Given, When, Then, setDefinitionFunctionWrapper }) => {
setDefinitionFunctionWrapper(() => {
this.Given('Открыли страницу google', function (callback) {
callback.pending();
});
this.When('Ввели поисковой зарос', function (callback) {
callback.pending();
});
this.Then('Поиск выдал результаты', function (callback) {
callback.pending();
});
})
});
Объект страницы пустой, поэтому его не привожу, по той причине, что тесты не запускаются в принципе, т.е., фичу видно, но шагов нет.
Запускаю через cucumber.js
в проекте.
Пробовал делать "стандарную" структуру приведенную в доках - все равно не работает, даже с кодом, приведенным там.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Здравствуйте, У меня есть сайт конференции на нем расположены опросы по докладам (списком), доклады будут проводится в определенный день...
Просьба подсказать как писать календарь для записи пациентов на приёмПишу на джаве нужно чтобы выводились дата время и месяц
Использую такую конструкцию для просмотра видеоОчень удобно и сокращается время загрузки страницы