簡體   English   中英

RSPEC:是否可以在規范文件中運行其他規范文件

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

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