在 Rails 的 rspec 中,我如何编写/编辑我的测试文件,以便特定上下文中的示例以设定的顺序运行?

Posted

技术标签:

【中文标题】在 Rails 的 rspec 中,我如何编写/编辑我的测试文件,以便特定上下文中的示例以设定的顺序运行?【英文标题】:In Rails' rspec, how do I write/edit my test file so that examples in a specific context are run in a set order? 【发布时间】:2021-12-13 04:12:43 【问题描述】:

我正在使用带有 RSpec 3.4.0 的 Rails 4.2。如果我想按照文件中出现的顺序运行所有示例,我可以运行

bundle exec rspec  --order defined spec/models/my_model_spec.rb

但是,如果我只想以特定顺序在特定描述块中运行示例怎么办?有什么方法可以通过在文件本身中添加一些属性或进行注释来做到这一点(而不是必须在命令行中添加它们)?

【问题讨论】:

【参考方案1】:

如果您只想在单个 describecontext 中运行规范,只需将 describecontext 语句的行号添加到规范文件名的末尾即可。

bundle exec rspec  --order defined scec/models/my_model_spec.rb:123

您还可以使用 --example 选项按名称运行特定示例组。

bundle exec rspec  --example "context name" spec/models/my_model_spec.rb

不过,第二个选择将使用正则表达式来查找字符串。因此,它将在任何 describecontextit 语句中找到该字符串的所有实例。

【讨论】:

以上是关于在 Rails 的 rspec 中,我如何编写/编辑我的测试文件,以便特定上下文中的示例以设定的顺序运行?的主要内容,如果未能解决你的问题,请参考以下文章

如何将内存中的 MongoDB 与 Rails、Mongoid 和 Rspec 一起使用?

如何显示 RSpec 测试生成的 SQL 查询日志?

Rails/Rspec - 在控制器中测试重定向

如何使用 RSpec 在 Rails 中测试:包含验证

如何使用rails cucumber,rspec,capybara在视图(dhtml)中测试动态部分?

RSpec:如何测试 Rails 记录器消息期望?