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 poner 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 de desarrollo guiado por tests. Esta no es la única forma, hay muchos métodos que pueden funcionar, pero este al menos te pondrá en marcha (nota: esto se ha probado y funciona en Windows 10 y Ubuntu 20.04).
Ya que dejamos de lado toda esa jerga, empecemos.
Puedes saltarte estas partes, ya que solo sirven para explicar el proceso.
En VSCode, elimina o desactiva todas las demás extensiones de depurador 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á una advertencia que dice Property integratedTerminal is not allowed, pero puedes ignorarla 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í que, en el caso de Lua, se ve así:└── Exercism/ ├── lua/ │ ├── armstrong-numbers │ ├── bank-account │ ├── binarysearch │ └── etc... └── python/ └── etc...Así que cuando abrimos VSCode desde la carpeta
/lua, de esta manera:
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 logramos combinando las variables de VSCode${workspaceFolder}y${relativeFileDirname}.La propiedad
argses el argumento que se debe pasar a Busted. En este caso usamos la variable${file}para hacer referencia al archivo que está abierto en ese momento.
Después, agrega estas tres líneas al inicio 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 depurador, abre el archivo de tests y luego 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 de la terminal integrada, en la parte inferior.
¡Feliz programación!