All checks were successful
hufs-notice-crawler-cicd / build_push_deploy (push) Successful in 8m35s
3.8 KiB
3.8 KiB
테스트 문서
이 문서는 HUFS 컴퓨터공학부 공지 크롤러의 테스트 방법과 검증 범위를 설명합니다.
관련 문서:
- 서비스 개요:
README.md - 운영/배포:
README.operation.md - n8n 연동:
README.n8n.md
자동 테스트 실행
가상환경 예시:
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 실행 시 저장만 하고 반환하지 않는지 확인
테스트 파일
tests/test_api.py- FastAPI 응답 구조 검증
tests/test_service.py- 신규 감지, bootstrap, latest_posts_by_board 동작 검증
tests/conftest.py- SQLite 인메모리 DB fixture
최신 자동 테스트 결과
기준 실행:
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관련 경고- 캐시 디렉토리 상태 문제
- 테스트 실패와는 별개
수동 확인 권장 항목
운영 전에는 아래를 직접 확인하는 것이 좋습니다.
GET /health호출 시{"status":"ok"}반환POST /api/v1/crawl호출 시 JSON 응답 정상- 첫 실행 시 bootstrap 동작 확인
- 두 번째 실행부터 신규 글만 반환되는지 확인
n8n에서 HTTP Request 노드 연동 확인- PostgreSQL 연결 정보가 맞을 때 컨테이너가 정상 기동하는지 확인
아직 직접 하지 못한 검증
- 실제 PostgreSQL 연동 end-to-end 테스트
- 실제 Docker 컨테이너 빌드/기동 테스트
- 실제 n8n 워크플로우 전송 테스트