簡體   English   中英

我應該如何將RSpec與Rake,Rails和我現有的測試集成?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM