运行bundle exec rspec指定documentation格式时如何保持用例定义顺序?
RSpec测试用例执行顺序不匹配文件定义的解决方法
RSpec默认会随机排序测试用例执行顺序,目的是暴露用例之间的隐式依赖问题,所以会出现执行输出顺序和文件内定义顺序不一致的情况。
命令行临时生效方案
直接在执行命令中添加--order defined参数即可让用例按照文件内的定义顺序执行,修改后的命令如下:
bundle exec rspec spec/services/abc_service_spec.rb --format documentation --order defined
全局永久生效方案
如果需要每次执行RSpec都默认按定义顺序执行,可以在项目根目录的.rspec配置文件中新增一行配置:
--order defined
注意:关闭随机顺序后,可能会隐藏测试用例之间的隐式依赖问题,比如某条用例的执行依赖前一条用例生成的数据,这类问题在随机执行场景下会偶现失败,建议优先排查用例依赖问题,而非直接强制固定执行顺序。
内容的提问来源于stack exchange,提问作者Zamir Manihar
相关产品推荐
相关产品推荐

