【问题标题】:How do I use --order option in Rspec to order files如何在 Rspec 中使用 --order 选项来订购文件
【发布时间】:2015-09-15 10:57:31
【问题描述】:

我想按如下固定顺序运行用rspec/capybara 编写的功能规范:

signup_spec.rb
login_spec.rb
project_creation_spec.rb
project_migration_spec.rb

given here--order 功能说明了这一点

Use the --order option to tell RSpec how to order the files, groups, and
examples

我将如何使用 .rspec 文件来提及通过我的要求?

我有一个 shell 脚本,其中的测试用例按如下顺序运行:

rspec spec/features/signup_spec.rb
rspec spec/features/login_spec.rb
rspec spec/features/project_creation_spec.rb
rspec spec/features/project_migration_spec.rb

【问题讨论】:

  • 我能问你为什么要应用固定订单吗?规范应该能够独立运行。事实上,较新版本的 RSpec 默认为随机顺序。
  • 我想以特定顺序运行规范,以便填充数据尽可能接近用户体验并且作为客户要求,所以我已经知道它们应该如何进行以及 rspec 为随机化做了什么,但是仍然没有回答问题。
  • @SpyrosMandekis 更新了问题,它没有提出与您提到的问题不同的特定问题。
  • 我不认为 Rspec 内置了这样的功能(有人纠正我),但我完全同意@SimoneCarletti,你的测试应该独立运行。您可以使用 background/let 组合来为依赖于先前测试的测试设置应用程序的状态。

标签: ruby-on-rails ruby capybara rspec-rails rspec3


【解决方案1】:

订单选项不允许这样做。它允许在默认排序(本质上是它们按照定义的顺序运行,这又取决于文件系统排序)或随机排序(可选地使用种子)之间切换

我认为任何顺序依赖都是一个错误 - 随机排序选项可以清除此类错误。

【讨论】:

  • file system ordering 取决于操作系统,所以如果我想按以下顺序运行:- 2_spec.rb > 3_spec.rb > 1_spec.rb 这可能吗?
  • 还有什么方法可以定制这种订购方式,正如它所说的--order option to tell RSpec how to order the files
  • 我描述的顺序是实现的顺序。我不知道修改 rspec 以允许自定义排序会有多困难
  • 这里的链接relishapp.com/rspec/rspec-core/v/2-9/docs/command-line/… 说它--order 说它提供了订购文件的选项......我想知道我们是否可以通过一个实现示例得到答案......
  • 它还继续说可用的选项是“default and rand”
猜你喜欢
  • 1970-01-01
  • 2021-10-03
  • 2020-06-28
  • 2012-02-21
  • 1970-01-01
  • 1970-01-01
  • 2017-06-24
  • 1970-01-01
相关资源
最近更新 更多