gpt4 book ai didi

ruby-on-rails - 如何让 Rspec2 支持不同路径中的模型和规范?

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

我有两个通过 git 子模块共享相同模型(公共(public)网站和管理站点)的 Rails 项目。

在我的 application.rb文件我添加了以下行:config.autoload_paths += ["shared/models", "shared/lib"] ,这在运行 Rails 应用程序时工作正常,但是当我尝试运行规范时,它似乎加载了 routes.rb首先是文件,然后是 application.rb文件 - 这意味着规范错误 - 特别是在设计时。

除此之外,Rspec 不会在共享/规范路径中获取规范 - 有没有办法将此路径添加到规范任务中,比如我是否需要设置自己的 rspec.rake 文件来复制任务或类似的东西?

干杯

最佳答案

要加载共享/模型,您必须将其添加到 config.autoload_paths。

然后从 shared/spec 加载您的规范,将其添加到 spec_helper.rb:


shared_model_specs = config.filename_pattern.split(",").collect do |pattern|
Dir["shared/spec/models/#{pattern.strip}"]
end.flatten
config.files_to_run.concat shared_model_specs

对其他感兴趣的人来说,如果您的规范文件在普通规范文件夹中但在自定义子文件夹下,您可以像这样加载它:

config.include RSpec::Rails::ModelExampleGroup, :type => :model, :example_group => {
:file_path => config.escaped_path(%w[spec shared models])
}

PS:我建议将共享代码或模块放入 gem 中,然后在两个项目中使用它们。通过这种方式,gem 包含自己的测试,并且从多个项目中引用它更加容易和有条理。

关于ruby-on-rails - 如何让 Rspec2 支持不同路径中的模型和规范?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4954790/

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