【问题标题】:Is It Possible To Pass A regex to the 'rspec` Command line command?是否可以将正则表达式传递给“rspec”命令行命令?
【发布时间】:2014-08-30 12:04:22
【问题描述】:

当从命令行调用rspec 时,我知道您可以使用-e 或-example 标志传入一个正则表达式,它与任何it 块的内容相匹配,但是是否有传递正则表达式并让 RSpec 运行名称与该正则表达式匹配的文件的方法?

【问题讨论】:

  • 正则表达式必须有多复杂?你可以只使用 bash 文件名扩展吗? (或者你不是在 *nix 操作系统上?)
  • @bundacia 是的。可以使用 Bash。
  • 这是在运行所有测试或特定文件或同时运行两者时?
  • 你想要什么?按照模式运行文件?
  • @ArupRakshit 我想运行文件中包含单词或短语的任何规范。

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


【解决方案1】:

您可以使用示例:-

它会为你加载所有以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").

【讨论】:

    【解决方案2】:

    您可以使用 bash 扩展。它不如完整的正则表达式强大,但在大多数情况下都有效。所以你可以做类似的事情

    rspec spec/models/user_*.spec
    

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

    【讨论】:

      猜你喜欢
      • 2015-12-20
      • 1970-01-01
      • 2015-02-17
      • 1970-01-01
      • 1970-01-01
      • 2012-06-21
      • 2013-06-26
      • 2014-09-09
      • 1970-01-01
      相关资源
      最近更新 更多