Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to test Jupyter notebooks on Travis CI?

Is there a way to deploy Jupyter Notebooks on Travis CI and test running all the cells?

My Jupyter Notebooks use IPython Kernel, and I have a conda environment file.

like image 765
Jay Wong Avatar asked Apr 06 '19 21:04

Jay Wong


People also ask

How do you run test cases in jupyter notebook?

To run the unit tests, you can either just execute the cell, and then the result of the unit test is printed below the cell of the Jupyter Notebook. Or you can browse to /some_folder with anaconda and run command: python unit_test_folder/some_unit_test.py , to run the command without opening the notebook (manually).

How do I know if my JupyterLab is running?

Your first Jupyter Notebook will open in new tab — each notebook uses its own tab because you can open multiple notebooks simultaneously. If you switch back to the dashboard, you will see the new file Untitled. ipynb and you should see some green text that tells you your notebook is running.

How do I check my Jupyter?

If you wish to know where Jupyter isinstalled on your computer, you may run where jupyter in the Command prompt. If you wish to know which Python version is installed, run python or python -V or python --version .


1 Answers

I've been wondering something similar and have compiled some information but haven't fully tested it yet.

Firstly, you can rely on jupyter nbconvert execute notebooks, where you can then look for errors. There's an example set up with Travis CI and Conda at ghego/travis_anaconda_jupyter. I believe Travis CI relies on pytest too to catch issues, though I'm not entirely sure how this fits together.

Another way you can run this is with pytest-notebook, which relies on you having a working version of the notebooks you want in some environment. This package's main purpose is to detect if changes to the environment will create issues within the notebooks. This can also potentially be used in conjunction with the above method, though it might be redundant.

It might be additionally beneficial for version management (tracking, seeing diffs, legibility) to write your notebooks in markdown format and then use jupytext to convert them into a .ipynb file to then run with the above options. jupytext can also execute notebooks directly with the --execute flag, so perhaps there's an even simpler way to integrate such a workflow!

I will be testing this in the coming weeks and will update this comment if I learn anything new.

like image 135
Jason R. Wang Avatar answered Sep 29 '22 08:09

Jason R. Wang