由于测试顺序的原因,我在RSpec中有一些测试间歇性失败(如果我使用rspec --seed 1234 spec
重新运行套件,我每次都可以重现失败(。在调试和修复此问题时,我希望将为更快的反馈循环而运行的测试限制为仅导致失败的测试。
例如,如果我运行完整套件(rspec --seed 1234 spec
(,在spec/models
下会有一些测试失败,但如果我运行rspec --seed 1234 spec/models
,则会通过。
我试图弄清楚这是否是因为spec/models
之外的测试导致了初始失败,或者如果种子是基于所选的测试。
那么,RSpec会按照最初运行的顺序重新运行子集吗?还是只有当我运行完全相同的套件时才能保证排序(例如,它是种子和测试套件的散列的某种组合(?
是的。
但是,您可以使用--bisect
标志为排序依赖关系创建最小回购案例,而不是手动操作。
rspec --seed 1234 --bisect