微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Ruby 3 是否有“机架测试”的替代方案?

如何解决Ruby 3 是否有“机架测试”的替代方案?

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

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

我看到的唯一选择是:

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

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

解决方法

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

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

目前,选项 1 是完全可行的; ruby 2.7 仍在积极维护中,support will probably continue until 2023-03-31。您可以这样做,只是希望选项 2 很快可用。

选项 3 的标准做法是:

  • fork 项目,并进行修复。
  • 向主存储库发起拉取请求,其中包含您的修复。希望它合并。
  • 同时,如果您需要解锁,请在其他项目中引用您的分叉存储库。

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

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


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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。