Repolode
jpmorganchase

jpmorganchase/nbcelltests

Extensão do JupyterLab e pacote Python para escrever testes unitários para células individuais de notebooks executados em sequência, como notebooks de relatórios.

Estrelas
97
Forks
26
Issues abertas
42
Último commit
há 4 dias

O que é?

O nbcelltests permite escrever testes para notebooks Jupyter usados em produção, principalmente os executados de cima para baixo para gerar relatórios. Para cada célula, você pode adicionar mocks e assertions, e a ferramenta gera uma classe unittest com um método por célula, incluindo os testes acumulados de todas as células anteriores e reproduzindo a execução sequencial do notebook.

Os testes ficam armazenados nos metadados das células e podem ser executados offline a partir de um arquivo .ipynb com a CLI do nbcelltests ou pela interface do navegador do JupyterLab, com resultados em pytest-html. O projeto também inclui verificações no estilo de lint, como o número máximo de linhas por célula, de células por notebook e de funções e classes, além do percentual de células cobertas por testes.

A ferramenta ajuda a detectar problemas causados por mudanças nas versões dos pacotes ou por edições exploratórias e não lineares que impeçam o notebook de gerar seu relatório. Ela se baseia no nbval, que faz a comparação de saídas no estilo de testes de regressão.

Recursos principais

  • 01Escreve métodos unittest por célula, com testes acumulados das células anteriores
  • 02Armazena as definições dos testes nos metadados das células do notebook
  • 03Executa testes pela linha de comando em arquivos .ipynb
  • 04Executa testes e exibe os resultados no JupyterLab via pytest-html
  • 05Verifica limites estruturais do notebook, como linhas por célula e células por notebook

Casos de uso

  • Testar unitariamente notebooks de relatórios executados de cima para baixo com Papermill ou ferramentas similares
  • Detectar problemas após atualizações de pacotes em um pipeline de geração de relatórios baseado em notebooks
  • Aplicar limites simples ao tamanho do código em notebooks durante o ciclo de vida do software

Início rápido

  1. 1

    Instale o pacote Python pelo PyPI

    pip install nbcelltests
  2. 2

    Gere e execute os testes de um notebook de exemplo

    nbcelltests test examples/Example.ipynb

Antes de usar

  • A integração com o JupyterLab requer Node.js e uma nova compilação do JupyterLab após a instalação.
  • No JupyterLab, as verificações de lint são executadas com a versão do Python que executa o Jupyter; por isso, notebooks Python 2 podem exibir erros de sintaxe falsos.

Em coleções

Tópicos

Perguntas frequentes

O que é nbcelltests?
Extensão do JupyterLab e pacote Python para escrever testes unitários para células individuais de notebooks executados em sequência, como notebooks de relatórios. O nbcelltests permite escrever testes para notebooks Jupyter usados em produção, principalmente os executados de cima para baixo para gerar relatórios. Para cada célula, você pode adicionar mocks e assertions, e a ferramenta gera uma classe unittest com um método por célula, incluindo os testes acumulados de todas as células anteriores e reproduzindo a execução sequencial do notebook.
nbcelltests é gratuito? Qual é a licença?
nbcelltests é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
nbcelltests ainda é mantido?
Manutenção ativa. O último commit de nbcelltests foi em 1 de nov. de 2026.
Para que posso usar nbcelltests?
Testar unitariamente notebooks de relatórios executados de cima para baixo com Papermill ou ferramentas similares Detectar problemas após atualizações de pacotes em um pipeline de geração de relatórios baseado em notebooks Aplicar limites simples ao tamanho do código em notebooks durante o ciclo de vida do software
Como instalar nbcelltests?
Instale o pacote Python pelo PyPI: pip install nbcelltests Gere e execute os testes de um notebook de exemplo: nbcelltests test examples/Example.ipynb
Onde consigo nbcelltests?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/jpmorganchase/nbcelltests

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados