我让我们的 RSpec 套件以随机顺序运行,以确保独立性和稳健性。但是,在某些情况下,我想按顺序运行规范。我知道我只能--order default
在命令行上使用,但我想将它与 CI 集成。我们使用 TDDium 进行 CI,我想尝试继续在 CI 服务器上随机运行,但要确保特定的规范文件按顺序运行。
问题
有没有办法在逐个文件的基础上指定 RSpec 应该以默认顺序运行该文件?我看到似乎有一些定制的订购策略支持合并到 rspec-core中,但这似乎并没有完全成熟(我不确定它是否支持before :all
),我仍在努力解决它.
讨论
而且,由于还有另一个问题因为“规范应该是独立的”而被否决,所以让我陈述我的用例,试图先发制人地避免“你不应该这样做”的论点。
我们有一个复杂的模型,其中系统状态的各个方面会随着时间而变化。我有一个分析系统,它正在监视该系统以跟踪各种事物随时间的状态变化。多亏了Timecop gem,我可以回到过去,创建一堆交互模型,然后逐步查看,比如 5 天,在已知条件下,每天查看分析系统所看到的系统。具体来说,在系统中嵌入假设的情况下,确保某些计算是正确的。
现在,我意识到我可以有 5 个单独的描述块,每个都经历为历史上 5 天中的每一天设置单独条件的过程,但是对我来说,逐步穿越时间并观察条件变化更有意义在那个状态。更高效,更贴近系统中实际发生的事情。我知道我可以在这里和那里模拟各种响应,我们这样做,但我有兴趣逐步完成基础系统和分析系统之间的“实时”交互。