iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 19
0
自我挑戰組

Vue應用測試系列 第 26

Day 26. 測試SSR常見問題

EADDRINUSE

表示你使用的Port被其他的Application占用,你可以把占用的application停用,或是使用


npx cross-env PORT=9999 npm run start

Test Passed , but Production Failed

這很可能是因為Jest預設在JSdom裡面執行,而裡面有關於Document等Browser才有的object定義。

這會導致誤報,所以你應該要在Node環境執行測試,設置方法如下:

在spec.js頂部加入:

/**
  * @jest-environment node
  */

執行測試時如果有使用到Document等物件,會跳出undefined錯誤。

Seperate Clinet Test and Server Test to Different File

你只能在一個環境執行相應的測試。

所以你最好把不同環境的Testing分隔出來,這可以避免掉很多問題。

而當使用 Vue Server Test Utils時,你的VUE_ENV被直接被設為server,於是你把測試分隔成Server Side 及 Client Side時這很棒,因為Jest可以讓每個測試執行於不同的Process。

但是如果你使用別的測試框架,而它會把測試執行在同一個Process的話你可能會遇到問題。

比較好的做法是,分隔出不同的Script來執行Server Side Test 以及 Clinet Side Test。

下一篇繼續。


上一篇
Day 25. Vue Server Test Utils
下一篇
Day 27. SSR 常見問題(2)
系列文
Vue應用測試30

尚未有邦友留言

立即登入留言