Дізнайтеся, як тестувати свої вправи з Lua на Exercism
Запустіть тести так:
$ busted
Про встановлення busted ідеться в розділі Установлення Lua локально.
Цей посібник покаже, як налаштувати VSCode із тестовим framework Busted та Local Lua Debugger, щоб ми могли ставити точки зупину і в специфікації тестів, і у файлі, який вона перевіряє, а отже працювати за простою схемою розробки через тестування. Це не канонічний підхід, існує багато методів, які можуть спрацювати, але цей принаймні допоможе нам усе запустити (зауваження: його перевірено, він працює на Windows 10 та Ubuntu 20.04).
Коли з термінологією розібралися, почнімо.
Ці частини можна пропустити, вони лише пояснюють процес.
У VSCode вимкніть або видаліть усі інші розширення для налагодження Lua і встановіть Local Lua Debugger. Потім створіть власну конфігурацію запуску такого вигляду:
{
"name": "Busted",
"type": "lua-local",
"request": "launch",
"program": {
"command": "busted"
},
"cwd": "${workspaceFolder}/${relativeFileDirname}",
"args": ["${file}"],
"integratedTerminal": true
}
Примітка: властивість integratedTerminal видасть попередження Property integratedTerminal is not allowed, але його можна спокійно проігнорувати.
Властивість
cwdзадає поточну робочу директорію, а це важливо для розвʼязання шляхів. Усталено Exercism установлює кожну вправу в окрему теку всередині теки з назвою треку. Тож у випадку Lua це має такий вигляд:└── Exercism/ ├── lua/ │ ├── armstrong-numbers │ ├── bank-account │ ├── binarysearch │ └── etc... └── python/ └── etc...Отже, коли ми відкриваємо VSCode з теки
/luaось так:
C:\users\<username>\Exercism\lua> code .або
/home/<username>/exercism/lua> code .VSCode покаже кожну вправу в її власній теці в нашому робочому просторі. Це означає, що нам потрібно, щоб конфігурація запуску змінювала поточну робочу директорію,
cwd, на теку кожної окремої вправи. Ми робимо це за допомогою комбінації змінних VSCode${workspaceFolder}та${relativeFileDirname}.Властивість
argsвизначає, який аргумент слід передати Busted. У цьому випадку ми використовуємо змінну${file}, щоб указати на поточний відкритий файл.
Потім додайте ці три рядки на початок файлу тестів вправи, яку виконуємо, а саме файлу з назвою <exercise_name>_spec.lua:
if os.getenv("LOCAL_LUA_DEBUGGER_VSCODE") == "1" then
require("lldebugger").start()
end
Тепер, коли ми хочемо запустити тести з налагоджувачем, відкриймо файл тестів, а потім запустімо конфігурацію запуску, яку щойно створили, з бічної панелі Run and Debug (Ctrl+Shift+D) ліворуч. Якщо файл тестів у фокусі, конфігурація запуску запустить ці тести, зупиняючись на точках зупину, і виведе результат на вкладці DEBUG CONSOLE у вбудованому терміналі внизу.
Гарного кодування!