是否可以将正则表达式传递给'rspec`命令行命令?

时间:2014-07-09 12:46:15

标签: ruby-on-rails ruby regex ruby-on-rails-4 rspec

从命令行调用rspec时,我知道您可以使用-e-example标记传递与任何{{1的内容相匹配的正则表达式块,但有没有办法传入正则表达式并让RSpec运行其名称与正则表达式匹配的文件?

2 个答案:

答案 0 :(得分:3)

您可以使用例子: -

  

它将为您加载所有文件,其名称以test开头

rspec -P spec/**/test*_spec.rb
rspec -P spec/**/test*.rb
  

它将为您加载所有文件,其中间有一个单词test,但不以test开头

rspec -P spec/**/*?test*_spec.rb

它将运行名称以 test 开头的所有文件。与 test_1_spec.rb test_2_spec.rb 等一样。但您必须从项目 root 目录运行此命令。

Docs for -P / --pattern flag

也可以从--help

获取信息
arup$ rspec -help | grep PATTERN
 -P, --pattern PATTERN  Load files matching pattern (default: "spec/**/*_spec.rb").

答案 1 :(得分:1)

您可以使用bash扩展。它不像完整的正则表达式那么强大,但大部分时间都有效。所以你可以做像

这样的事情
rspec spec/models/user_*.spec

文档:https://www.gnu.org/software/bash/manual/html_node/Pattern-Matching.html#Pattern-Matching