Можно ли конфигурировать cucumber-js?

343
08 января 2017, 19:16

Ранее писал тесты на 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 в проекте.

Пробовал делать "стандарную" структуру приведенную в доках - все равно не работает, даже с кодом, приведенным там.

READ ALSO
Красим фон блока по времени /JavaScript / PHP

Красим фон блока по времени /JavaScript / PHP

Здравствуйте, У меня есть сайт конференции на нем расположены опросы по докладам (списком), доклады будут проводится в определенный день...

301
Создание календаря для больницы для веб приложения [требует правки]

Создание календаря для больницы для веб приложения [требует правки]

Просьба подсказать как писать календарь для записи пациентов на приёмПишу на джаве нужно чтобы выводились дата время и месяц

307
Правка всплывающего плеера YouTube

Правка всплывающего плеера YouTube

Использую такую конструкцию для просмотра видеоОчень удобно и сокращается время загрузки страницы

346