gpt4 book ai didi

ruby-on-rails - RSpec 中 spec 目录的 Before 和 After 钩子(Hook)

转载 作者:数据小太阳 更新时间:2023-10-29 07:04:38 26 4
gpt4 key购买 nike

我们的 RSpec 测试套件中有相当多的测试。目录结构看起来像 -

spec/
truncation/
example1_spec.rb
example2_spec.rb
...
transaction/
example1_spec.rb
example2_spec.rb
...

我想在 transaction/ 文件夹中的所有规范文件运行之前恢复测试数据库转储,并在所有测试完成后将其清空。

有办法吗?

before(:suite)after(:suite) Hook ,但它们适用于单个规范文件。

有没有办法在 RSpec 中为目录提供前后 Hook ?

最佳答案

你在使用 RSpec 3+ 吗?

您可以使用#define_derived_metadata 添加基于文件路径匹配器的自定义元数据。

RSpec.configure do |config|
config.define_derived_metadata(file_path: %r{spec/truncation}) do |metadata|
metadata[:truncation] = true
end

config.before(:all, :truncation) do
# truncate that bad boy
end
end

这是 same methodrspec-rails 中用于向特定目录中的规范添加自定义行为,例如规范/ Controller

Docs

关于ruby-on-rails - RSpec 中 spec 目录的 Before 和 After 钩子(Hook),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29651981/

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