2012-02-20 20 views
29

我喜歡用Spork在單獨的選項卡中運行我的Rspec測試。我通常運行我的測試,使用rspec spec,我打算說「遞歸搜索並運行spec文件夾中的所有內容」。如何讓Rspec運行嵌套在文件夾下的所有測試?

我最近意識到這實際上並沒有運行我所有的測試。我現在有一個不在運行的spec/requests規範文件。我知道這是因爲我已經編輯一個測試引發錯誤,並運行以下命令:

  • rspec spec - 沒有錯誤引發。
  • ​​- 仍然沒有錯誤提出,並且0 examples, 0 failures
  • rspec spec/requests/my_controller.rb - 賓果17 examples, 1 failure和失敗有我的錯誤消息。

爲什麼Rspec沒有找到我所有的測試文件?這是配置的問題,還是我需要使用不同的命令來運行我的測試?

我需要一次運行所有測試,以確保不會引入迴歸。

(不使用叉勺沒什麼區別,順便說一句。)

回答

57

Rspec的應該已經遞歸期待通過您指定的目錄中,找到的所有測試。但請注意,它正在查找以_spec.rb結尾的文件。也許你的一些文件沒有正確命名?

如果您需要更具體地瞭解應找到哪些文件,還可以使用--pattern選項。例如:rspec --pattern spec/requests/*_spec.rb。 (選項--pattern等於-P。從rspec --help兩者)​​