0

我已經開始爲我的React項目使用create-react-app,並且作爲測試庫,它隨附了JestJest的連續測試場景

正如我作出反應的應用程序的一部分,我喜歡創造集成測試(以及單元測試),因爲我覺得它很有用,能夠檢查在應用程序中的幸福路徑是否按預期工作。例如:使用Enzyme渲染(掛載)頁面,但只模擬http調用(使用Sinon),以便一次執行完整的React/Redux流程。

使用create-react-app之前,我用摩卡進行測試,我發現mocha-steps是集成測試有很大的擴展,因爲它允許一組在測試中的順序執行,並處理如果的步驟,無需停止失敗停止整個測試運行。

問題:有什麼辦法讓Jest以類似的方式行事?具體而言,我希望能夠在組中指定一系列測試(例如在describe中),並按順序依次執行測試。

我一直在尋找Jest文檔,或者任何其他擴展它的庫,但我已經空了。現在,感覺唯一的選擇是進行一次大的測試,這讓我感到很難過,如果我能避免它,我寧願不換掉摩卡咖啡。

謝謝!

回答

2

jest目前不支持標記要連續運行的特定測試(如avatest.serial)。

這一直是requested before,但我不認爲他們正在努力。

解決方法是讓您確定要同時運行哪些測試文件以及哪些測試文件要串行運行。

例如,我通常將我的單元測試命名爲*.test.js,我的集成測試的名稱是*.spec.js

我可以同時運行我的單元測試。

$ jest '(/__tests__/.*\\.test)\\.js$' 

而且我可以連續運行我的集成測試。

$ jest '(/__tests__/.*\\.spec)\\.ts$' --runInBand 

我可以在我的package.json將二者結合起來。

"scripts": { 
    "unit": "jest '(/__tests__/.*\\.test)\\.js$'", 
    "integration": "jest '(/__tests__/.*\\.spec)\\.ts$' --runInBand", 
    "test": "npm run unit && npm run integration" 
} 

運行npm test可以再下一首先運行併發測試,然後串行的。

+0

這是一個有趣的解決方法,並且可能是獲得類似於「摩卡步驟」的最佳方法。不幸的是,一個組中較早的測試失敗很可能會導致後續測試失敗,因此運行的「測試失敗」計數會產生誤導 - 但至少它應該工作:)感謝這個想法! –

+0

我一直想要這個功能。尤其適用於端到端測試。在有人爲此製作公關之前,我們只能採取變通辦法。 – dashmug