Tesztelés a Lua-kurzuson

Tanuld meg, hogyan teszteld a Lua-feladataidat az Exercism-ön


A teszteket így futtathatod:

$ busted

A busted telepítésével kapcsolatban lásd a Lua helyi telepítése című részt.

Egységtesztek hibakeresése

Ez az útmutató megmutatja, hogyan állítsd be a VSCode-ot a Busted tesztkeretrendszerrel és a Local Lua Debugger kiterjesztéssel, hogy töréspontokat helyezhess el mind a tesztspecifikációban, mind a tesztelt fájlban, ezzel megkönnyítve egy egyszerű tesztvezérelt fejlesztés munkafolyamatát. Ez nem az egyetlen helyes út, sok módszer működhet, de ez legalább segít elindulni (megjegyzés: ezt Windows 10-en és Ubuntu 20.04-en teszteltük, és működik).

Most, hogy a szakzsargonon túl vagyunk, kezdjük is el.

Ezeket a részeket kihagyhatod, mert csak a folyamat magyarázatát szolgálják.

A VSCode-ban távolítsd el vagy tiltsd le az összes többi Lua-hibakereső kiterjesztést, és telepítsd a Local Lua Debugger kiterjesztést. Ezután hozz létre egy egyéni indítási konfigurációt, például így:

{
	"name": "Busted",
	"type": "lua-local",
	"request": "launch",
	"program": {
		"command": "busted"
	},
	"cwd": "${workspaceFolder}/${relativeFileDirname}",
	"args": ["${file}"],
	"integratedTerminal": true
}

megjegyzés: Az integratedTerminal tulajdonság egy figyelmeztetést ad, amely szerint Property integratedTerminal is not allowed, de ezt nyugodtan figyelmen kívül hagyhatod.

A cwd tulajdonság adja meg az aktuális munkakönyvtárat, ami fontos az útvonalak feloldásához. Az Exercism alapértelmezés szerint minden feladatot a saját mappájába telepít, a kurzus nevéhez tartozó mappa alá. Lua esetében ez így néz ki:

└── Exercism/
    ├── lua/
    │   ├── armstrong-numbers
    │   ├── bank-account
    │   ├── binarysearch
    │   └── etc...
    └── python/
        └── etc...

Tehát amikor a /lua mappából nyitjuk meg a VSCode-ot, így:

C:\users\<username>\Exercism\lua> code .

vagy

/home/<username>/exercism/lua> code .

A VSCode minden feladatot a saját mappájában mutat a munkaterületen. Ez azt jelenti, hogy az indítási konfigurációnak minden egyes feladat mappájára módosítania kell az aktuális munkakönyvtárat, a cwd-t. Ezt a ${workspaceFolder} és a ${relativeFileDirname} VSCode-változó kombinációjával érjük el.

Az args tulajdonság adja meg, milyen argumentumot kell átadni a Busted-nek. Esetünkben a ${file} változóval hivatkozunk az éppen megnyitott fájlra.

Ezután írd be ezt a három sort annak a feladatnak a tesztfájljának az elejére, amelyen éppen dolgozol; a fájl neve <exercise_name>_spec.lua:

if os.getenv("LOCAL_LUA_DEBUGGER_VSCODE") == "1" then
  require("lldebugger").start()
end

Amikor most a hibakeresővel szeretnéd futtatni a teszteket, nyisd meg a tesztfájlt, majd indítsd el az imént létrehozott indítási konfigurációt a bal oldali Run and Debug (Ctrl+Shift+D) oldalsávból. Ha a tesztfájl van fókuszban, az indítási konfiguráció lefuttatja ezeket a teszteket, megáll a töréspontoknál, és a kimenetet az alsó integrált terminál DEBUG CONSOLE lapjára írja.

Jó kódolást!