了解如何在 Exercism 上測試你的 Lua 練習。
用以下指令執行測試
$ busted
安裝busted的說明請參考在本機安裝 Lua。
本指南會帶你設定 VSCode 與 Busted 測試框架及 Local Lua Debugger,讓你可以同時在測試檔和受測檔案中設定中斷點,輕鬆進行測試驅動開發的工作流程。這不是唯一做法,可行的方式有很多,但這個方法至少能讓你順利上手(注意:本文做法已在 Windows 10 與 Ubuntu 20.04 上測試過,可正常運作)。
術語都交代完了,我們開始吧。
這幾個部分只是為了說明流程,你可以跳過。
在VSCode中移除或停用其他所有 Lua 除錯擴充功能,然後安裝 Local Lua Debugger。接著建立一個像這樣的自訂啟動設定:
{
"name": "Busted",
"type": "lua-local",
"request": "launch",
"program": {
"command": "busted"
},
"cwd": "${workspaceFolder}/${relativeFileDirname}",
"args": ["${file}"],
"integratedTerminal": true
}
注意:integratedTerminal這個屬性會出現Property integratedTerminal is not allowed的警告訊息,但你可以放心忽略它。
cwd屬性指定目前的工作目錄,這在解析路徑時很重要。預設情況下,Exercism 會把每個練習安裝在各自專屬的資料夾中,這些資料夾都位在以所屬語言命名的資料夾底下。以 Lua 為例,結構看起來像這樣:└── Exercism/ ├── lua/ │ ├── armstrong-numbers │ ├── bank-account │ ├── binarysearch │ └── etc... └── python/ └── etc...所以當我們像這樣從
/lua資料夾開啟 VSCode 時:
C:\users\<username>\Exercism\lua> code .或
/home/<username>/exercism/lua> code .VSCode 會在工作區中把每個練習顯示在各自的資料夾裡。這表示我們需要讓啟動設定把目前的工作目錄
cwd切換到每個練習各自的資料夾。我們用${workspaceFolder}和${relativeFileDirname}這兩個 VSCode 變數來達成。
args屬性則是要傳給 Busted 的引數。在這裡我們用${file}這個變數來指向目前開啟的檔案。
接著,在你正在進行的練習的測試檔(檔名為<exercise_name>_spec.lua)開頭加上這三行:
if os.getenv("LOCAL_LUA_DEBUGGER_VSCODE") == "1" then
require("lldebugger").start()
end
現在,當你想用除錯器執行測試時,打開測試檔,然後從左側的Run and Debug(Ctrl+Shift+D)側邊欄執行你剛才建立的啟動設定。如果測試檔是目前焦點所在的檔案,這個啟動設定就會執行那些測試、在中斷點停下來,並把輸出列印到下方整合式終端機的DEBUG CONSOLE分頁。
祝你寫程式愉快!