Aprende a probar tus ejercicios de Lua en Exercism
Ejecuta tus tests con
$ busted
Consulta Instalar Lua localmente para instalar busted.
Esta guía te mostrará cómo configurar VSCode con el framework de tests Busted y Local Lua Debugger para que puedas establecer puntos de interrupción tanto en el archivo de tests como en el archivo que se está probando, lo que facilita un flujo de trabajo sencillo de desarrollo guiado por tests. Esto no es canónico; hay muchos métodos que pueden funcionar, pero este al menos te pondrá en marcha (nota: se ha probado y funciona en Windows 10 y Ubuntu 20.04).
Una vez aclarado todo ese argot, empecemos.
Puedes saltarte estas partes, ya que solo sirven para explicar el proceso.
En VSCode, elimina o desactiva todas las demás extensiones de debug de Lua e instala Local Lua Debugger. Después, crea una configuración de inicio personalizada como esta:
{
"name": "Busted",
"type": "lua-local",
"request": "launch",
"program": {
"command": "busted"
},
"cwd": "${workspaceFolder}/${relativeFileDirname}",
"args": ["${file}"],
"integratedTerminal": true
}
nota: La propiedad integratedTerminal mostrará un aviso que dice Property integratedTerminal is not allowed, pero puedes ignorarlo sin problema.
La propiedad
cwdespecifica el directorio de trabajo actual; esto es importante para resolver rutas. De forma predeterminada, Exercism instala cada ejercicio en su propia carpeta, dentro de la carpeta con el nombre del track. Así, en el caso de Lua, tiene este aspecto:└── Exercism/ ├── lua/ │ ├── armstrong-numbers │ ├── bank-account │ ├── binarysearch │ └── etc... └── python/ └── etc...Así que cuando abrimos VSCode desde la carpeta
/lua, de esta forma:
C:\users\<username>\Exercism\lua> code .o
/home/<username>/exercism/lua> code .VSCode mostrará cada ejercicio en su propia carpeta dentro de nuestro espacio de trabajo. Eso significa que necesitamos que la configuración de inicio cambie el directorio de trabajo actual,
cwd, a la carpeta de cada ejercicio. Lo hacemos combinando las${workspaceFolder}y${relativeFileDirname}variables de VSCode.La propiedad
argses el argumento que se debe pasar a Busted. En este caso usamos la variable${file}para referirnos al archivo abierto en ese momento.
Después, añade estas tres líneas al principio del archivo de tests del ejercicio que estás haciendo, llamado <exercise_name>_spec.lua:
if os.getenv("LOCAL_LUA_DEBUGGER_VSCODE") == "1" then
require("lldebugger").start()
end
Ahora, cuando quieras ejecutar los tests con el debugger, abre el archivo de tests y ejecuta la configuración de inicio que acabas de crear desde la barra lateral Run and Debug (Ctrl+Shift+D) de la izquierda. Si el archivo de tests tiene el foco, la configuración de inicio ejecutará esos tests, se detendrá en los puntos de interrupción e imprimirá la salida en la pestaña DEBUG CONSOLE del terminal integrado de la parte inferior.
¡Feliz programación!