0

我们正在使用rack-test我们的 Cucumber 规格。我们一直在尝试迁移到 Ruby 3 一段时间,当前的问题是 Cucumber 测试由于rack-test在其内部方法中同时使用关键字/位置参数而崩溃。

我准备自己修补它,但是看到 repo 上的活动很少(包括开放数周/数月的 PR),我担心我会做这项工作并且没有人可以修补它。

我看到的唯一选择是:

  • 做这项工作并祈祷会有人审查/合并更改
  • 从现在开始在本地打补丁并在本地使用打补丁的版本(恶心)
  • 寻找替代解决方案rack-test

最后一个解决方案似乎是最好的 IMO。那么,有没有其他选择?

4

1 回答 1

1

所有开源软件一样,您有几个选择:

  1. 继续使用旧软件版本(即不要使用 ruby​​ v3.0.0)。
  2. 希望其他人为您更新依赖项。
  3. 自己做更新。
  4. 停止使用图书馆。

目前,选项 1 完全可行;ruby 2.7 仍在积极维护中,支持可能会持续到2023-03-31. 您可以这样做,只是希望选项 2 很快可用。

选项 3 的标准做法是:

  • 分叉项目,并进行修复。
  • 使用您的修复打开主仓库的拉取请求。希望它被合并。
  • 同时,如果您需要解封,请在其他项目中参考您的分叉回购。

这显然需要付出更多的努力,但我不会称其为“糟糕”的解决方案。除非您的更改是剧烈的/引入了与主项目的兼容性问题,并且两个分支存在分歧。

至于选项 4,与几乎所有库替换一样,在兼容性/功能之间总会有一些权衡,但显然其他测试框架确实存在。这取决于您实际使用它的方式。你的旅费可能会改变。


总而言之,对于这样一个主观的问题,我真的无法给出客观的答案,但我目前的建议是:如果你现在有时间/技能/动机来更新到 ruby​​ 3,那么 fork 依赖项并更新它. (这可能不需要进行大规模的更改!)。

但是如果你缺乏时间/技能/动力来做这件事,那么现在就坚持使用 ruby​​ 2.7。

于 2021-03-23T10:57:42.520 回答