Cucumber-js: Откройте `const { Cli } = require('@cucumber/cucumber')` для программного использования

Созданный на 28 июн. 2021  ·  3Комментарии  ·  Источник: cucumber/cucumber-js

Ваш запрос функции связан с проблемой?
Я нахожусь в процессе добавления поддержки огурца-js в StrykerJS, фреймворк для тестирования мутаций для JavaScript и друзей. См. https://github.com/stryker-mutator/stryker-js/pull/2970.

Я хотел бы использовать огурец программно. На самом деле, я уже делаю это в МР. Однако я понимаю, что использую недокументированный API, что мне не нравится, поскольку реализация может сломаться в версии с патчем. Я стараюсь использовать только общедоступные API.

Опишите желаемое решение

Примете ли вы PR, в котором документируется использование класса Cli для публичного использования?

const { Cli } = require('@cucumber/cucumber')

Я бы добавил его в каталог документов . Либо в новом файле ( programmatic-usage.md ), либо добавьте его в файл cli.md .

Опишите альтернативы, которые вы рассматривали
-

Дополнительный контекст
Чтобы сделать возможным тестирование мутаций, нам нужен программный API. Простой вызов childProcess.exec для выполнения Cucumber-js будет работать, но это плохо для производительности, поскольку Stryker будет запускать Cucumber-js много раз во время запуска тестирования мутации.

documentation

Самый полезный комментарий

Эй, @nicojs , ты безупречен! Сегодня утром я пишу предложение по новому программному API, которое, надеюсь, будет вам полезно. Я отмечу вас там, так как было бы здорово получить ваш первоначальный отзыв.

Все 3 Комментарий

Вы не единственный, кто использует внутренние API для программного использования.

Я думаю, было бы неплохо стабилизировать такой API и задокументировать его.

@cucumber/cucumber-js, что ты думаешь?

Эй, @nicojs , ты безупречен! Сегодня утром я пишу предложение по новому программному API, которое, надеюсь, будет вам полезно. Я отмечу вас там, так как было бы здорово получить ваш первоначальный отзыв.

Мы собираемся закрыть это, так как у нас есть хорошая дискуссия # 1711 о новом API для решения этой проблемы.

Я просто добавлю, что цель состоит в том, чтобы оставить класс Cli работающим так, как он есть в 8.0.0, даже если он не находится в общедоступном API, чтобы дать разработчикам время переключиться на новый API и железо. никаких проблем там.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги