Aprenda a testar seus exercícios de Lua no Exercism
Rode seus testes com
$ busted
Consulte Instalando o Lua localmente para instalar o busted.
Este guia mostra como configurar o VSCode com o framework de testes Busted e o Local Lua Debugger, para que você possa definir pontos de interrupção tanto no arquivo de teste quanto no arquivo que ele testa. Assim fica bem mais fácil seguir um fluxo de trabalho de Desenvolvimento Guiado por Testes. Isto não é uma regra canônica: existem vários métodos que podem funcionar, mas este pelo menos vai te colocar para rodar (nota: isto foi testado e funciona no Windows 10 e no Ubuntu 20.04).
Agora que já tiramos todo esse jargão do caminho, vamos começar.
Você pode pular estas partes, já que elas só servem para explicar o processo.
No VSCode, remova ou desative todas as outras extensões de depuração de Lua e instale o Local Lua Debugger. Depois, crie uma configuração de inicialização personalizada assim:
{
"name": "Busted",
"type": "lua-local",
"request": "launch",
"program": {
"command": "busted"
},
"cwd": "${workspaceFolder}/${relativeFileDirname}",
"args": ["${file}"],
"integratedTerminal": true
}
nota: A propriedade integratedTerminal vai emitir um aviso dizendo Property integratedTerminal is not allowed, mas você pode ignorá-lo tranquilamente.
A propriedade
cwdespecifica o diretório de trabalho atual, o que é importante para resolver caminhos. Por padrão, o Exercism instala cada exercício em sua própria pasta, dentro da pasta com o nome da trilha. Então, no caso do Lua, fica assim:└── Exercism/ ├── lua/ │ ├── armstrong-numbers │ ├── bank-account │ ├── binarysearch │ └── etc... └── python/ └── etc...Então, quando abrimos o VSCode a partir da pasta
/lua, assim:
C:\users\<username>\Exercism\lua> code .ou
/home/<username>/exercism/lua> code .O VSCode vai mostrar cada exercício em sua própria pasta no nosso workspace. Isso significa que precisamos que a configuração de inicialização mude o diretório de trabalho atual,
cwd, para a pasta de cada exercício. Fazemos isso com uma combinação das variáveis do VSCode${workspaceFolder}e${relativeFileDirname}.A propriedade
argsindica qual argumento deve ser passado ao Busted. Neste caso, usamos a variável${file}para referenciar o arquivo aberto no momento.
Depois, adicione estas três linhas no topo do arquivo de teste do exercício que você está fazendo, chamado <exercise_name>_spec.lua:
if os.getenv("LOCAL_LUA_DEBUGGER_VSCODE") == "1" then
require("lldebugger").start()
end
Agora, quando você quiser rodar os testes com o depurador, abra o arquivo de teste e execute a configuração de inicialização que você acabou de criar, pela barra lateral Run and Debug (Ctrl+Shift+D) à esquerda. Se o arquivo de teste estiver em foco, a configuração de inicialização vai rodar esses testes, parando nos pontos de interrupção, e imprimir a saída na aba DEBUG CONSOLE do terminal integrado na parte de baixo.
Boa programação!