Ruby 运行'rspec'时执行'git签出'`

Ruby 运行'rspec'时执行'git签出'`,ruby,git,rspec,Ruby,Git,Rspec,在使用RSpec执行长时间运行的测试套件时,我想签出另一个git分支 在这种情况下,RSpec的行为如何?它是否在启动过程中将所有文件读入内存(在这种情况下,更改分支将无效),还是仅在需要时读取它们?如果在测试已运行时进行签出,则只要该进程不启动其他进程,它将继续执行与前一个分支关联的规范(例如,使用rake测试可以在不同的过程中启动不同的测试套件,如果它们作为不同的任务提供) 但是,如果您的规范需要在运行时访问Ruby环境之外的资源,例如在文件系统上写入/读取文件,并且该资源在新分支中不可用或

在使用RSpec执行长时间运行的测试套件时,我想签出另一个git分支


在这种情况下,RSpec的行为如何?它是否在启动过程中将所有文件读入内存(在这种情况下,更改分支将无效),还是仅在需要时读取它们?

如果在测试已运行时进行签出,则只要该进程不启动其他进程,它将继续执行与前一个分支关联的规范(例如,使用
rake测试
可以在不同的过程中启动不同的测试套件,如果它们作为不同的任务提供)

但是,如果您的规范需要在运行时访问Ruby环境之外的资源,例如在文件系统上写入/读取文件,并且该资源在新分支中不可用或已更改,那么规范可能会返回无效结果

换句话说,只要规范只依赖于进程启动时Ruby虚拟机可能加载的代码,那么就可以了

不管这是否被推荐,那是另一回事。我个人会避免它,以防止意外的副作用