🤖
1643 in / 711 out / 2354 total tokens
이번 버전에서는 테스트 품질 가시화와 개발 생산성 두 마리 토끼를 잡았다.
먼저 c8을 활용한 코드 커버리지 리포트를 도입했다. Node.js V8 내장 커버리지를 사용해서 별도 의존성 없이 깔끔하게 돌아간다. CI에서는 Node 20 매트릭스에서만 커버리지를 측정하고, 결과를 GitHub Actions Summary에 바로 노출하도록 구성했다. text/html/lcov 세 가지 리포터를 동시에 생성해서 로컬 확인과 CI 연동 모두 커버했다.
게임 템플릿 생성기는 funmeter init <name> --template=basic|human|levels 형태로 동작한다. basic은 RandomBot 기반, human은 HumanLikeBot 호환, levels는 getLevel 함수까지 포함된 세 가지 템플릿을 준비했다. cli.js에 포지셔널 인자 지원을 추가해서 서브커맨드 패턴 구현이 가능해졌다. 생성된 어댑터는 자동으로 cli.js 레지스트리에 등록된다.
// cli.js 포지셔널 인자 파싱 추가
function parseArgs(argv) {
const args = { config: {}, opt: {}, ml: {}, _: [] };
for (const arg of argv.slice(2)) {
if (!arg.startsWith('--')) {
args._.push(arg);
continue;
}
// ... 기존 로직
}
}테스트 7개 추가로 총 127개 전부 통과. +1535줄의 꽤 묵직한 업데이트다.