A command-line test framework for Jupyter Notebooks that executes notebooks and runs unittest/doctest cells.
treon is a test framework for Jupyter Notebooks that executes notebooks from top to bottom and runs any unittest or doctest present in the code cells. It solves the problem of validating notebook correctness and preventing execution errors in production data science workflows.
Data scientists, machine learning engineers, and developers who use Jupyter Notebooks in production pipelines and need automated testing for notebook reliability.
Developers choose treon because it requires no additional test code to start, integrates easily into CI systems, and avoids hidden state issues by executing each notebook in a fresh kernel.
Easy to use test framework for Jupyter Notebooks
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Runs notebooks top-to-bottom and executes any embedded unittest or doctest without requiring additional test code, enabling quick validation from the start.
Uses multithreaded execution to test multiple notebooks concurrently, significantly reducing test time for large projects as highlighted in the usage example.
Executes each notebook in a new kernel to prevent hidden state issues, ensuring reliable and reproducible test results in notebook workflows.
Command-line interface with options for paths, threads, and exclusions makes it straightforward to integrate into continuous integration systems, as emphasized in the philosophy.
Only supports Python's built-in unittest and doctest, lacking integration with popular frameworks like pytest which offer more features and plugins for complex testing needs.
Requires a Python 3 environment and kernel, making it unsuitable for notebooks that use other programming languages supported by Jupyter, as noted in the dependencies section.
Needs all notebook dependencies pre-installed in the testing environment, which can complicate setup and maintenance, especially in isolated CI or containerized setups.