[英]RSPEC: Is it possible to run other spec file inside a spec file
我知道最佳做法是使測試獨立運行。
我正在使用Rspec運行Selenium Webdriver測試。 如果我為每個特定的測試用例創建並拆卸用戶組和其他模型,則測試運行時間將大大增加(大約30分鍾)。
因此,我將規格文件分為create _...,delete _...,並希望在一個規格文件中調用這些規格文件。 這可能嗎?它是設置測試的好方法還是壞方法?
就像是:
create_users_spec.rb
create_user_groups_spec.rb
create_dashboard_spec.rb
==> run some tests....
delete_dashboard_spec.rb
delete_user_groups_spec.rb
delete_users_spec.rb
run_all_spec.rb => run all of the spec files above, so you can see that
it needs to run in a certain sequence
您確實希望能夠獨立運行測試。 在我看來,必須運行所有測試,甚至“僅”測試所有給定文件,在開發過程中似乎都是無法接受的延遲。 它還使難以使用的諸如Guard之類的工具可以基於文件觀察器為您運行測試。
如果確實有需要運行的內容(例如每個請求規范),則可以執行以下操作:
# spec_helper.rb
RSpec.configure do |config|
config.before :all, type: :request do
# do stuff
end
end
但也要看你正在嘗試做的。 如果您只是為測試設置模型/數據庫數據,則需要固定裝置,或者最好是工廠。 看看FactoryGirl。
也許結合context
組織測試並明智地使用before(:each)
和before(:all)
會提高性能。 簡化數據庫或使用像FactoryGirl這樣的庫也有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.