【问题标题】:Do Ruby classes get cleared out between Rake tasksRuby 类是否在 Rake 任务之间被清除
【发布时间】:2010-07-02 15:00:30
【问题描述】:

我有一个将规范任务定义为的 Rakefile

task :spec => [:check_dependencies, :load_backends]

然后运行实际的 rspec 测试。在 load_backends 任务期间,它加载了一个名为 Story 的类,但在第一个规范测试中,defined?(Story) 返回 false。

我假设 Rake 的预期行为是在每个任务开始时从一个新环境开始,但是有没有办法覆盖它?还是我需要重新架构将后端加载到每个任务中?

【问题讨论】:

  • 好吧,我的 rake 知识很薄,但是 Rails 有一个任务“环境”,可以加载曾经依赖的 Rails 环境。因此,我不认为 rake 正在清理,但必须关闭其他东西。
  • 你能把代码贴在:load_backend任务里吗?

标签: ruby rspec rake


【解决方案1】:

RSpec 的规范任务会启动一个新的 Ruby 进程(我认为主要是为了不搞乱你的 Rake 进程),因此在你的规范中定义的 rake 任务(甚至是规范任务)中的类不可用。考虑将此逻辑移动到您的规范助手或不使用 RSpec 的规范任务。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-26
    • 2011-02-11
    • 2016-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多