--RSpec中的--seed选项

joh*_*nja 2 ruby rspec ruby-on-rails

有谁能够解释这实际上意味着什么?该文档似乎说它与设置订单(--seed 123 # same as --order rand:123)类似,但是据我所知,似乎不再赘述。我假设它与种子数据无关,但是我很可能是错的。

提前致谢

spi*_*ann 11

在默认配置中,RSpec以随机顺序运行其测试。实际上,这是一个好习惯,因为测试应该相互独立。以随机顺序运行它们有助于查找仅在按特定顺序运行但以其他顺序失败时才通过的测试。

但是问题是:如果RSpec以随机顺序运行测试然后失败,那么如何再次以相同顺序重新运行测试以调试问题?可以通过告诉RSpec使用与以前相同的随机性来完成。

RSpec在启动时会告诉您该种子:

$ rspec spec

Randomized with seed 48111
.....*.........
Run Code Online (Sandbox Code Playgroud)

要以完全相同的顺序重新运行规格,请运行:

$ rspec spec --seed 48111
Run Code Online (Sandbox Code Playgroud)

Random#seed在这种情况下,阅读可能会很有趣。