Repolode
jpmorganchase

jpmorganchase/nbcelltests

보고서 노트북처럼 셀을 순차적으로 실행하는 노트북의 개별 셀을 대상으로 단위 테스트를 작성하는 JupyterLab 확장 및 Python 패키지입니다.

스타
97
포크
26
열린 이슈
42
마지막 커밋
6일 전

어떤 프로젝트인가요?

nbcelltests를 사용하면 주로 위에서 아래로 실행해 보고서를 생성하는 프로덕션 Jupyter 노트북의 테스트를 작성할 수 있습니다. 각 셀에 mock과 assertion을 추가하면, 노트북의 순차 실행 방식을 반영해 각 셀마다 메서드 하나씩을 포함하고 이전 모든 셀의 테스트를 누적하는 unittest 클래스를 생성합니다.

테스트는 셀 메타데이터에 저장되며, nbcelltests CLI를 사용해 .ipynb 파일에서 오프라인으로 실행하거나 JupyterLab 브라우저 인터페이스에서 pytest-html 결과와 함께 실행할 수 있습니다. 또한 셀당 최대 줄 수, 노트북당 셀 수, 함수 및 클래스 개수, 테스트가 적용된 셀의 비율 등 lint 스타일의 검사 기능도 제공합니다.

이 도구는 패키지 버전 변경으로 인한 문제나, 탐색 과정에서 비선형적으로 편집한 탓에 노트북이 보고서를 생성하지 못하는 문제를 찾아내는 데 초점을 둡니다. 회귀 테스트 방식으로 출력을 비교하는 nbval을 기반으로 합니다.

핵심 기능

  • 01셀마다 unittest 메서드를 작성하고 이전 셀의 테스트를 누적합니다
  • 02테스트 정의를 노트북 내부의 셀 메타데이터에 저장합니다
  • 03.ipynb 파일에서 명령줄로 테스트를 실행합니다
  • 04pytest-html을 통해 JupyterLab에서 테스트를 실행하고 결과를 표시합니다
  • 05셀당 줄 수, 노트북당 셀 수 등의 노트북 구조 제한을 검사합니다

활용 사례

  • Papermill 또는 유사한 도구로 위에서 아래로 실행하는 보고서 노트북의 단위 테스트
  • 노트북 기반 보고 파이프라인에서 패키지 업그레이드 후 발생하는 문제 탐지
  • 소프트웨어 개발 수명 주기 프로세스에서 노트북의 간단한 코드 크기 제한 적용

빠른 시작

  1. 1

    PyPI에서 Python 패키지를 설치합니다

    pip install nbcelltests
  2. 2

    예제 노트북의 테스트를 생성하고 실행합니다

    nbcelltests test examples/Example.ipynb

사용 전 알아둘 점

  • JupyterLab 통합에는 Node.js가 필요하며, 설치 후 JupyterLab을 다시 빌드해야 합니다.
  • JupyterLab에서는 lint 검사가 Jupyter를 실행하는 Python 버전으로 수행되므로 Python 2 노트북에 잘못된 구문 오류가 표시될 수 있습니다.

포함된 컬렉션

토픽

자주 묻는 질문

nbcelltests은(는) 무엇인가요?
보고서 노트북처럼 셀을 순차적으로 실행하는 노트북의 개별 셀을 대상으로 단위 테스트를 작성하는 JupyterLab 확장 및 Python 패키지입니다. nbcelltests를 사용하면 주로 위에서 아래로 실행해 보고서를 생성하는 프로덕션 Jupyter 노트북의 테스트를 작성할 수 있습니다. 각 셀에 mock과 assertion을 추가하면, 노트북의 순차 실행 방식을 반영해 각 셀마다 메서드 하나씩을 포함하고 이전 모든 셀의 테스트를 누적하는 unittest 클래스를 생성합니다.
nbcelltests은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
nbcelltests은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
nbcelltests은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. nbcelltests의 마지막 커밋은 2026년 11월 1일입니다.
nbcelltests은(는) 어디에 사용할 수 있나요?
Papermill 또는 유사한 도구로 위에서 아래로 실행하는 보고서 노트북의 단위 테스트 노트북 기반 보고 파이프라인에서 패키지 업그레이드 후 발생하는 문제 탐지 소프트웨어 개발 수명 주기 프로세스에서 노트북의 간단한 코드 크기 제한 적용
nbcelltests는 어떻게 설치하나요?
PyPI에서 Python 패키지를 설치합니다: pip install nbcelltests 예제 노트북의 테스트를 생성하고 실행합니다: nbcelltests test examples/Example.ipynb
nbcelltests은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/jpmorganchase/nbcelltests

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트