Ruby 3 是否有 `rack-test` 的替代方案?
Is there an alternative for `rack-test` for Ruby 3?
我们正在使用 rack-test
作为我们的 Cucumber 规范。一段时间以来,我们一直在尝试迁移到 Ruby 3,目前的问题是 Cucumber 测试因 rack-test
在其内部方法中使用两个 keyword/positional 参数而崩溃。
我准备自己修补它,但看到 activity 回购中的内容很少(包括为 weeks/months 开放的 PR)我担心我会完成工作并且在那里没有人会修补它。
我看到的唯一选择是:
- 做好工作并祈祷会有人review/merge改变
- 在本地打补丁并从现在开始在本地使用打补丁的版本(讨厌)
- 找到
rack-test
的替代解决方案
最后一个解决方案似乎是最好的 IMO。那么,还有其他选择吗?
与所有开源软件一样,您有几个选择:
- 继续使用旧的软件版本(即不要使用 ruby v3.0.0)。
- 希望其他人为您更新依赖项。
- 自行更新。
- 停止使用图书馆。
目前,选项1完全可行; ruby 2.7 仍在积极维护中,support will probably continue until 2023-03-31
。您可以这样做,只是希望选项 2 尽快可用。
选项 3 的标准做法是:
- 分叉项目,并进行修复。
- 打开一个拉取请求 到包含你的修复的主仓库。希望它被合并。
- 同时,如果您需要解封,请在其他项目中引用您的分叉仓库。
这显然需要更多的努力,但我不会称之为“糟糕”的解决方案;除非您的更改是 drastic/introduce 与主项目的兼容性问题,并且两个分支不同。
至于选项 4,与几乎 any 库替换一样,总是会在 compatibility/features 之间进行一些权衡,但显然其他测试框架确实存在.这取决于您实际使用它的方式。您的里程可能会有所不同。
综上所述,对于这样一个主观的问题,我真的无法给出 objective 的答案,但我目前的建议是:如果你有 time/skill/motivation 更新到 ruby 3 现在,然后分叉依赖项并更新它。 (可能不需要进行大规模更改!)。
但是如果您没有 time/skill/motivation 来执行此操作,那么现在就坚持使用 ruby 2.7。
我们正在使用 rack-test
作为我们的 Cucumber 规范。一段时间以来,我们一直在尝试迁移到 Ruby 3,目前的问题是 Cucumber 测试因 rack-test
在其内部方法中使用两个 keyword/positional 参数而崩溃。
我准备自己修补它,但看到 activity 回购中的内容很少(包括为 weeks/months 开放的 PR)我担心我会完成工作并且在那里没有人会修补它。
我看到的唯一选择是:
- 做好工作并祈祷会有人review/merge改变
- 在本地打补丁并从现在开始在本地使用打补丁的版本(讨厌)
- 找到
rack-test
的替代解决方案
最后一个解决方案似乎是最好的 IMO。那么,还有其他选择吗?
与所有开源软件一样,您有几个选择:
- 继续使用旧的软件版本(即不要使用 ruby v3.0.0)。
- 希望其他人为您更新依赖项。
- 自行更新。
- 停止使用图书馆。
目前,选项1完全可行; ruby 2.7 仍在积极维护中,support will probably continue until 2023-03-31
。您可以这样做,只是希望选项 2 尽快可用。
选项 3 的标准做法是:
- 分叉项目,并进行修复。
- 打开一个拉取请求 到包含你的修复的主仓库。希望它被合并。
- 同时,如果您需要解封,请在其他项目中引用您的分叉仓库。
这显然需要更多的努力,但我不会称之为“糟糕”的解决方案;除非您的更改是 drastic/introduce 与主项目的兼容性问题,并且两个分支不同。
至于选项 4,与几乎 any 库替换一样,总是会在 compatibility/features 之间进行一些权衡,但显然其他测试框架确实存在.这取决于您实际使用它的方式。您的里程可能会有所不同。
综上所述,对于这样一个主观的问题,我真的无法给出 objective 的答案,但我目前的建议是:如果你有 time/skill/motivation 更新到 ruby 3 现在,然后分叉依赖项并更新它。 (可能不需要进行大规模更改!)。
但是如果您没有 time/skill/motivation 来执行此操作,那么现在就坚持使用 ruby 2.7。