[英]Rails - rspec - How can I run all the integration tests, similar to rake spec:models
[英]How should I integrate RSpec with Rake, Rails and my existing tests?
我想開始使用RSpec為我的Rails應用程序編寫測試,但是我有許多使用Test :: Unit編寫的現有測試。 我想繼續只需從命令行運行所有測試(或所有單元測試,功能測試等),類似於
rake test:units
或者其他什么,讓它運行所有單元測試,無論它們是用Test :: Unit還是RSpec編寫的。 而且我絕對不想浪費大量時間將我現有的測試轉換為RSpec; 這不是首發。
現在,我想我希望我的RSpec測試與我現有的測試,測試/單元,測試/功能等一起存在。實現這一目標的最佳方法是什么? 或者這甚至是一個好主意? 也就是說,我對RSpec(以及Ruby和Rails)很新,所以也許保持RSpec分離是一種更好的做法。 然而,無論它們存儲在文件系統中的哪個位置,我仍然需要能夠使用單個rake任務運行所有測試,並且我需要使用rcov收集整個測試語料庫的代碼覆蓋率數字,我已經在做我現有的測試了。
編輯:修復了一些關於Rspec rails目錄結構的錯誤陳述。
Rspec通常將其測試放在一個單獨的目錄結構spec/
,如下所示:
spec/
├── controllers
│ ├── pages_controller_spec.rb
│ └── users_controller_spec.rb
├── helpers
│ ├── pages_helper_spec.rb
│ └── users_helper_spec.rb
├── models
│ └── user_spec.rb
├── spec_helper.rb
└── views
├── pages
│ └── home.html.haml_spec.rb
└── users
├── index.html.haml_spec.rb
└── show.html.haml_spec.rb
它有一個單獨的模型,控制器和視圖目錄。 我不確定Test :: Unit究竟是如何構建其目錄的,但這是Rspec的默認目錄結構。 請注意spec_helper.rb
文件。 該文件告訴Rspec在哪里查找規范,並有一些其他配置選項。
您最好的選擇可能只是遵循rspec最佳實踐來制定spec
目錄,並制定自己的rake任務,同時運行單元測試和rspec測試。 像這樣的東西:
task :run_tests do
system("rspec spec/")
system("rake test:units")
end
那將運行你的rspec測試,然后輪流你的Test :: Unit測試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.