Aprende a testar os teus exercícios de Lua no Exercism
Corre os testes com
$ busted
Consulta Instalar o Lua localmente para instalares o busted.
Este guia mostra-te como configurar o VSCode com o framework de testes Busted e o Local Lua Debugger, para poderes definir pontos de interrupção tanto no ficheiro de especificação dos testes como no ficheiro que este testa, o que facilita um fluxo de trabalho simples de Desenvolvimento Orientado a Testes. Isto não é a única forma de o fazer; há muitos métodos que podem funcionar, mas este pelo menos põe-te a trabalhar (nota: foi testado e funciona no Windows 10 e no Ubuntu 20.04).
Posto isto, e deixando o jargão de lado, vamos começar.
Podes saltar estas partes, pois servem apenas para explicar o processo.
No VSCode, remove ou desativa todas as outras extensões de depurador de Lua e instala o Local Lua Debugger. Depois, cria uma configuração de arranque personalizada assim:
{
"name": "Busted",
"type": "lua-local",
"request": "launch",
"program": {
"command": "busted"
},
"cwd": "${workspaceFolder}/${relativeFileDirname}",
"args": ["${file}"],
"integratedTerminal": true
}
nota: A propriedade integratedTerminal dá um aviso a dizer Property integratedTerminal is not allowed, mas podes ignorá-lo à vontade.
A propriedade
cwdespecifica o diretório de trabalho atual, o que é importante para resolver caminhos. Por predefinição, o Exercism instala cada exercício na sua própria pasta, dentro da pasta com o nome do track. Por isso, no caso do Lua, fica assim:└── Exercism/ ├── lua/ │ ├── armstrong-numbers │ ├── bank-account │ ├── binarysearch │ └── etc... └── python/ └── etc...Por isso, quando abrimos o VSCode a partir da pasta
/lua, assim:
C:\users\<username>\Exercism\lua> code .ou
/home/<username>/exercism/lua> code .O VSCode mostra cada exercício na sua própria pasta na nossa área de trabalho. Isto significa que precisamos que a configuração de arranque mude o diretório de trabalho atual,
cwd, para a pasta de cada exercício individual. Fazemo-lo com uma combinação das variáveis do VSCode${workspaceFolder}e${relativeFileDirname}.A propriedade
argsindica o argumento que deve ser passado ao Busted. Neste caso, usamos a variável${file}para referir o ficheiro aberto neste momento.
Depois, adiciona estas três linhas ao topo do ficheiro de testes do exercício em que estás a trabalhar, com o nome <exercise_name>_spec.lua:
if os.getenv("LOCAL_LUA_DEBUGGER_VSCODE") == "1" then
require("lldebugger").start()
end
Agora, quando quiseres correr os testes com o depurador, abre o ficheiro de testes e executa a configuração de arranque que acabaste de criar, a partir da barra lateral Run and Debug (Ctrl+Shift+D), à esquerda. Se o ficheiro de testes estiver em foco, a configuração de arranque corre esses testes, parando nos pontos de interrupção, e imprime o resultado no separador DEBUG CONSOLE do terminal integrado, em baixo.
Boas programações!