Exercism에서 Lua 연습 문제를 테스트하는 방법을 배워요.
테스트는 이렇게 실행해요
$ busted
busted를 설치하는 방법은 Lua 로컬 설치를 참고해요.
이 가이드에서는 VSCode를 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...그럼
/lua폴더에서 이렇게 VSCode를 열면:
C:\users\<username>\Exercism\lua> code .또는
/home/<username>/exercism/lua> code .VSCode는 워크스페이스에서 각 연습 문제를 각자의 폴더에 보여줘요. 그렇다면 실행 구성에서 현재 작업 디렉터리인
cwd를 각 연습 문제 폴더로 바꿔줘야 해요. 이건${workspaceFolder}와${relativeFileDirname}VSCode 변수를 조합해서 해요.
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 탭에 표시해요.
즐겁게 코딩해요!