即使使用测试子集重新运行,RSpec 的种子是否也能保持顺序?



由于测试顺序的原因,我在RSpec中有一些测试间歇性失败(如果我使用rspec --seed 1234 spec重新运行套件,我每次都可以重现失败(。在调试和修复此问题时,我希望将为更快的反馈循环而运行的测试限制为仅导致失败的测试。

例如,如果我运行完整套件(rspec --seed 1234 spec(,在spec/models下会有一些测试失败,但如果我运行rspec --seed 1234 spec/models,则会通过。

我试图弄清楚这是否是因为spec/models之外的测试导致了初始失败,或者如果种子是基于所选的测试。

那么,RSpec会按照最初运行的顺序重新运行子集吗?还是只有当我运行完全相同的套件时才能保证排序(例如,它是种子和测试套件的散列的某种组合(?

是的。

但是,您可以使用--bisect标志为排序依赖关系创建最小回购案例,而不是手动操作。

rspec --seed 1234 --bisect

最新更新