TL;DR
PyTorch의 테스트 인프라는 하나의 소스 템플릿을 import 시점에 장치와 dtype별로 구체화해 실제 실행되는 테스트 이름을 생성하는 구조로 설계되어 있어 CI에서 보이는 이름이 소스와 다르게 나타난다. 데코레이터와 OpInfos 같은 연산 메타데이터가 테스트 확장에 사용되며 이를 통해 수천 개 조합을 자동으로 검증하므로 수작업 테스트 작성을 크게 줄인다. 로컬에서는 생성된 테스트 이름 패턴으로 pytest -k를 사용하거나 test/run_test.py를 이용해 CI 실패를 재현하고 CI 샤딩 로그의 장치·dtype 정보를 바탕으로 소스 템플릿으로 역추적해야 원인 분석이 효율적이다. 이 접근법은 대규모 하드웨어·타입 조합의 커버리지를 확보하는 데 유리하지만 생성된 이름과 샤드 매핑을 이해하지 못하면 로컬 디버깅이 혼란스러워진다.
섹션별 상세
pytest test/test_torch.py::TestTorch::test_matmul소스 파일에 보이는 클래스·메서드 이름으로 pytest를 직접 호출했을 때 'no tests collected'가 발생하는 사례를 재현하는 명령어 예시이다.
pytest test/test_torch.py -k "test_matmul"
pytest test/test_torch.py -k "test_matmul_cuda_float32"생성된 테스트 이름 패턴으로 필터링해 로컬에서 CI 실패를 재현하거나 특정 장치·dtype 인스턴스를 실행하는 방법 예시이다.
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.