在Rake任务之间清除Ruby类

时间:2010-07-02 15:00:31

标签: ruby rspec rake

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

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

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

我假设Rake的行为是在每个任务开始时以新环境开始,但有没有办法覆盖它?或者我是否需要重新构建将后端加载到每个任务中?

1 个答案:

答案 0 :(得分:1)

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