Files
hufs-notice-crawler/README.test.md
nkey ca460453af
All checks were successful
hufs-notice-crawler-cicd / build_push_deploy (push) Successful in 8m35s
Feat: [main] hufs-notice-crawler CI/CD까지 구현 완료
2026-03-17 17:18:16 +09:00

3.8 KiB

테스트 문서

이 문서는 HUFS 컴퓨터공학부 공지 크롤러의 테스트 방법과 검증 범위를 설명합니다.

관련 문서:

자동 테스트 실행

가상환경 예시:

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python -m pytest

현재 자동 테스트 범위

  • GET /health 응답 확인
  • POST /api/v1/crawl 응답 구조 확인
  • 신규 글만 DB에 저장되는지 확인
  • 신규 글이 0개일 때 응답이 올바른지 확인
  • 최초 bootstrap 실행 시 저장만 하고 반환하지 않는지 확인

테스트 파일

최신 자동 테스트 결과

기준 실행:

python -m pytest

결과:

5 passed

의미:

  • API 테스트 통과
  • 서비스 로직 테스트 통과
  • bootstrap 관련 테스트 통과

실제 사이트 수동 검증 결과

PostgreSQL 연결 없이 실제 HUFS 컴퓨터공학부 사이트에 요청을 보내 크롤링 동작 여부를 확인했습니다.

검증 일시:

  • 2026-03-17

검증 범위:

  • 공지사항 목록 페이지 접근
  • 자료실 목록 페이지 접근
  • 취업정보 목록 페이지 접근
  • 목록에서 article_id와 링크 추출
  • 상세 페이지에서 제목, 작성자, 게시일, 본문, 첨부파일 추출
  • 사용자용 subview.do?enc=... 링크 생성 확인

확인 결과:

  • 공지사항 1926 접근 성공
  • 자료실 1927 접근 성공
  • 취업정보 1929 접근 성공
  • 크롤러가 목록 파싱 성공
  • 상세 페이지 파싱 성공
  • 자료실 샘플 게시글에서 첨부파일 링크 추출 성공
  • 반환 링크가 subview.do?enc=... 형식으로 생성되는 것 확인

실제 확인 예시:

  • 공지사항
    • 수집 수: 20개
    • 샘플 글: 249714
  • 자료실
    • 수집 수: 8개
    • 샘플 글: 239712
    • 첨부파일 1개 추출 확인
  • 취업정보
    • 수집 수: 10개
    • 샘플 글: 247506

문법 검증

python -m compileall app tests

경고 해석

테스트 결과에 warnings summary가 나올 수 있습니다.

  • passed
    • 테스트 자체는 성공
  • warning
    • 추후 라이브러리 버전 업이나 파이썬 버전 변화 시 수정이 필요할 수 있는 항목

현재 기준으로 보이는 경고는 대체로 다음입니다.

  • fastapi.routing 내부 DeprecationWarning
    • 현재 사용 중인 FastAPI/하위 의존성과 Python 3.14 조합에서 발생 가능
  • pytest cache 관련 경고
    • 캐시 디렉토리 상태 문제
    • 테스트 실패와는 별개

수동 확인 권장 항목

운영 전에는 아래를 직접 확인하는 것이 좋습니다.

  1. GET /health 호출 시 {"status":"ok"} 반환
  2. POST /api/v1/crawl 호출 시 JSON 응답 정상
  3. 첫 실행 시 bootstrap 동작 확인
  4. 두 번째 실행부터 신규 글만 반환되는지 확인
  5. n8n에서 HTTP Request 노드 연동 확인
  6. PostgreSQL 연결 정보가 맞을 때 컨테이너가 정상 기동하는지 확인

아직 직접 하지 못한 검증

  • 실제 PostgreSQL 연동 end-to-end 테스트
  • 실제 Docker 컨테이너 빌드/기동 테스트
  • 실제 n8n 워크플로우 전송 테스트