rspec 挂钩中当前示例/组的名称

发布于 2024-10-20 16:56:05 字数 336 浏览 5 评论 0原文

我添加了一个 rspec 挂钩,它允许我打开录像机并使用当前示例的名称作为磁带名称。

it "should have collaborators", :vcr => :once do
  # web interactions
end

config.around(:each, :vcr => :once) do |example|
  VCR.use_cassette(example.name, :record => :once) do
    example.call
  end
end

问题是我不知道如何获取当前示例的名称(example.name 不起作用)。

I'm adding an rspec hook that will allow me to switch on vcr and use the name of the current example as the cassette name.

it "should have collaborators", :vcr => :once do
  # web interactions
end

config.around(:each, :vcr => :once) do |example|
  VCR.use_cassette(example.name, :record => :once) do
    example.call
  end
end

trouble is I don't know how to get the name of the current example (example.name doesn't work).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我的影子我的梦 2024-10-27 16:56:05

RSpec 定义了一个元数据方法,该方法返回一个哈希值,其中包含有关示例的一些有用信息。您可以尝试:

example.metadata[:full_description]

它应该返回组和示例名称,并连接成一个字符串。

RSpec defines a metadata method that returns a hash with some useful information about the example. You might try:

example.metadata[:full_description]

which should return the group(s) and example name, concatenated into one string.

梅倚清风 2024-10-27 16:56:05

这看起来有点繁琐,但它确实有效

  config.before(:each, :vcr => :once) do
    group_descriptions = self.example.example_group.ancestors.map(&:description)
    spec_name = [*group_descriptions.reverse, self.example.description].join("/")
    VCR.insert_cassette(spec_name, :record => :once)
  end

  config.after(:each, :vcr => :once) do
    VCR.eject_cassette
  end

This seems a bit fiddly but it does the job

  config.before(:each, :vcr => :once) do
    group_descriptions = self.example.example_group.ancestors.map(&:description)
    spec_name = [*group_descriptions.reverse, self.example.description].join("/")
    VCR.insert_cassette(spec_name, :record => :once)
  end

  config.after(:each, :vcr => :once) do
    VCR.eject_cassette
  end
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文