某次用 testcafe 測試時,呼叫某個 library 的函數後,整個瀏覽器就沒反應,也無錯誤訊息,完全無法得知發生何事。
這時只好追蹤進該函數才能知道發生何事,以下兩個參數可以啟用 node.js server 端的除錯器:
testcafe --inspect --debug-brk chrome ./test.ts
參考 All the tricks that help you debug TestCafe tests
只要在程式碼中寫下
debugger;
該除錯器就會幫你停在那ㄧ行,接下來你就可單步執行去找問題。
最後發現是 Promise 中的 lambda function 內有錯誤:
fs.copyFileSync
是 undefined,因為從 node 8.5.0 之後才存在該函數。
後來發現這兩個參數其實是 node.js 的除錯參數,看來 testcafe 本身也是執行 node.js。
留言