2016-10-11 163 views
0

當我孤立地運行JS功能測試,他們工作正常。Rspec&水豚測試通過隔離,失敗一起運行

當我運行測試套件時,它們失敗。

我使用'rspec spec'執行'--bisect'並返回1個產生失敗的測試。

規格: https://gist.github.com/lfgdz/c56481ce88cdb80750fa6d98f0ec1a4d

spec_helper: https://gist.github.com/lfgdz/08b1b82d2a36aaf7929af79b04c652c1

+0

哪個特定規格失敗?失敗時會發生什麼?請提供足夠的信息讓問題獨立出來。 –

+1

你也使用關係數據庫嗎?測試後,我沒有看到像databasecleaner清理任何東西。 – slowjack2k

+0

**在第25行失敗:** expect(page).to have_content('您需要從您的編輯個人資料頁面與LinkedIn重新連接') –

回答

0

當規格傳遞孤立的,而是運行時一起失敗,必須有一些相互依賴性或信息是他們之間的泄漏。

正如@ slowjack2k說,你spec_helper.rb指定:

config.use_transactional_fixtures = false 

RSpec Transactions文檔,這意味着你已經問RSpec的不換行各規格的交易。這意味着在一個規範期間對數據庫進行的更改可能會影響其他規範,包括標準單元測試和水豚功能測試之間的更改。

如果您確實需要關閉交易夾具,則需要使用database_cleaner或其他一些機制來確保在一個規格中所做的更改不會影響其他規格。