您的功能请求是否与问题有关?
我正在为 StrykerJS(JavaScript 和朋友的突变测试框架)添加对 cucumber-js 的支持。 见https://github.com/stryker-mutator/stryker-js/pull/2970
我想以编程方式使用黄瓜。 事实上,我已经在 MR 中这样做了。 但是,我意识到我正在使用未记录的 API,我不喜欢这样做,因为实现可能会在补丁发布版本中中断。 我努力只使用公共 API。
描述您想要的解决方案
你会接受记录Cli
类用于公共用途的 PR 吗?
const { Cli } = require('@cucumber/cucumber')
我会将它添加到您的文档目录中。 在新文件 ( programmatic-usage.md
) 中或将其添加到cli.md
文件中。
描述您考虑过的替代方案
-
附加上下文
为了使突变测试可行,我们需要一个程序化 API。 简单地调用childProcess.exec
来执行 cucumber-js 是可行的,但是对于性能来说很糟糕,因为 Stryker 会在突变测试运行期间多次运行 cucumber-js。
您不是唯一一个使用内部 API 进行编程使用的人。
我认为稳定这样的 API 并记录它是一个好主意。
@cucumber/cucumber-js 你怎么看?
嘿@nicojs ,你的时机无可挑剔! 今天早上我正在为一个新的程序化 API 写一份提案,希望对你有所帮助。 我会在那里标记您,因为很高兴获得您的初步反馈。
当我们在#1711 上就解决此需求的新 API 进行了很好的讨论时,将关闭此内容。
我只是补充一点,目的是让Cli
类按照 8.0.0 中的方式工作,即使它不在公共 API 上,也让开发人员有时间切换到新的 API 和 Iron解决那里的任何问题。
最有用的评论
嘿@nicojs ,你的时机无可挑剔! 今天早上我正在为一个新的程序化 API 写一份提案,希望对你有所帮助。 我会在那里标记您,因为很高兴获得您的初步反馈。