在使用RSpec执行长期运行的测试套件时,我想签出另一个git分支。
在这种情况下,RSpec的行为如何?它是将所有文件作为引导过程的一部分读入内存(在这种情况下,更改分支不会产生任何影响),还是只在需要时才读取它们?
发布于 2015-09-16 11:29:01
如果您在测试已经运行时签出,它将继续执行与前一个分支相关联的规范,只要进程不启动其他进程(例如,使用rake test可以在不同进程中启动不同的测试套件,如果它们是作为不同的任务提供的)。
但是,如果您的规范需要在运行时访问Ruby环境之外的资源,例如在文件系统上写入/读取文件,并且该资源在新分支中不可用或已更改,那么规范可能返回无效的结果。
换句话说,只要规范只依赖Ruby虚拟机在进程开始时可能加载的代码,那么您就可以了。
不管这是推荐还是不推荐,这是另一个故事。我个人会避免它,以防止意外的副作用。
https://stackoverflow.com/questions/32606678
复制相似问题