SQLite 트랙에서 테스트하기

Exercism에서 SQLite 연습 문제를 테스트하는 방법을 배워요


SQLite 연습 문제의 테스트를 실행하려면 다음 단계를 따라 해요:

  1. 사용하는 터미널을 열어요.
  2. 해당 ${slug}_test.sql 파일이 있는 디렉터리로 이동해요. 여기서 ${slug}는 연습 문제의 이름이고, 공백 대신 하이픈을 쓰고 모두 소문자로 적어요.
  3. 다음 명령을 실행해요:
sqlite3 -bail < ${slug}_test.sql

이 명령은 빈 데이터베이스로 SQLite를 초기화하고, ${slug}_test.sql에 지정된 테스트를 실행한 뒤 종료해요. -bail은 유효하지 않은 코드가 나오면 실행이 멈추도록 해요.

테스트 결과는 표 형태로 콘솔에 표시되는데, 각 테스트의 설명과 상태(예: "pass"), 그리고 상태가 "fail"일 때의 메시지를 보여줘요.

디버깅

디버깅할 때는 SELECT 문을 사용할 수 있어요. 출력은 user_output.md로 전달되고, 테스트가 실패하면 웹 에디터에 표시돼요.

실행 세부 사항

테스트 파일(${slug}_test.sql)은 꽤 복잡한 스크립트예요. 이 스크립트가 하는 일을 간단히 살펴봐요.

  1. create_fixture.sql을 읽어서 테이블을 설정해요. 이 과정에서 테이블을 만들고, 유효한 데이터는 data.csv에서, 실패해야 하는 항목은 error_data.csv에서 가져온 값으로 채워요. 테스트 중에는 이 테이블들만 확인하고, 다른 테이블의 변경 사항은 무시해요.
  2. ${slug}.sql 파일을 읽어서 풀이 코드를 실행해요.
  3. 테스트 케이스와 결과를 담을 테이블을 만들어요.
  4. 풀이가 갱신한 테이블의 데이터를 바탕으로 테스트 결과를 채워요.
  5. 테스트 결과(pass 또는 fail, 그리고 필요하면 세부 정보)를 표시해요. 이 CSV 파일들에는 다양한 시나리오를 테스트하는 데 필요한 데이터가 들어 있어요.