gpt4 book ai didi

ruby-on-rails - 是否可以在不运行测试套件的情况下重新录制 VCR 磁带?

转载 作者:行者123 更新时间:2023-12-04 05:37:39 26 4
gpt4 key购买 nike

我收藏了大约 2.5GB 的 VCR 磁带 https://github.com/vcr/vcr .我正在使用 3.0.1 版。

我需要不时重新录制磁带。但是,由于运行测试比仅仅触发请求并将答案记录在磁带中花费的时间要长得多,我正在寻找一种方法来仅触发已记录的请求并重新记录它们。

理想情况下,我会有一个 rake 任务来执行此操作,例如:

rake vcr:cassettes:refresh

我该怎么办?

最佳答案

我要建议的内容并不适用于所有可能的设置(例如,那些将每个连接包装在 VCR.use_cassette 中的设置,或者那些使用带有 Faraday 的 VCR 中间件的设置)。但是,如果您碰巧使用 configure_rspec_metadata! 设置了 VCR,就像这样:

https://www.relishapp.com/vcr/vcr/v/3-0-1/docs/test-frameworks/usage-with-rspec-metadata

...换句话说,如果每个需要 VCR 的示例或示例组都有 :vcrvcr: true 作为元数据,那么您可以只运行 VCR-在命令行上标记规范,例如:

$ rspec ./spec --tag @vcr

--tag 选项已记录 here .

如果您没有使用元数据设置,并且没有什么可以阻止您使用它,那么切换到它可能比想出一些其他过滤规范的方法更快,假设它们已经完全混合在那里。它还可以更方便地添加新的 VCR 规范。一个可能的缺点是磁带名称可能需要更改,但由于您打算重新录制它们,所以这应该无关紧要。

关于ruby-on-rails - 是否可以在不运行测试套件的情况下重新录制 VCR 磁带?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37441248/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com