表示你使用的Port被其他的Application占用,你可以把占用的application停用,或是使用
npx cross-env PORT=9999 npm run start
這很可能是因為Jest預設在JSdom裡面執行,而裡面有關於Document等Browser才有的object定義。
這會導致誤報,所以你應該要在Node環境執行測試,設置方法如下:
在spec.js頂部加入:
/**
* @jest-environment node
*/
執行測試時如果有使用到Document等物件,會跳出undefined錯誤。
你只能在一個環境執行相應的測試。
所以你最好把不同環境的Testing分隔出來,這可以避免掉很多問題。
而當使用 Vue Server Test Utils時,你的VUE_ENV被直接被設為server,於是你把測試分隔成Server Side 及 Client Side時這很棒,因為Jest可以讓每個測試執行於不同的Process。
但是如果你使用別的測試框架,而它會把測試執行在同一個Process的話你可能會遇到問題。
比較好的做法是,分隔出不同的Script來執行Server Side Test 以及 Clinet Side Test。
下一篇繼續。