How To Use¶
%load_ext testmynb
¶
Load testmynb to the ipython kernel to start using testmynb.
In [1]:
%load_ext testmynb
%%testcell
Magic¶
By loading testmynb
to the ipython kernel, the %%testcell
magic becomes available.
By adding the %%testcell
magic to the cell, it flags the cell to be executed as a test by the testmynb
command line tool.
In [2]:
%%testcell example_test_cell
assert 1==1, 'Example assert statement'
Test Cell¶
Test cells should generally have two things: a title and an assert statement.
When running testmynb
, the failed/errored test cell’s title is displayed to allow the user to distinguish which test failed/errored. If no title is given, the title falls back to unnamed
.
You may still distinguish the failed/errored test cell by observing the cell body and the traceback of the test.
pytest
, a test cell should contain an assert statement to test whatever you’re testing.If any of the two above are missing, a message is displayed when the cell is executed.
In [3]:
%%testcell
test = True
# No assert statement nor cell title.
# Running this cell will print out a message
# saying there is no assert statement nor a cell title.
[testmynb] Assert statement missing.
[testmynb] Cell title missing.
-n
option¶
The -n
option is used to run the cell during the test, but not to treat it as a test. This can be used for cells which contain all the required import statements, or as a setup/teardown cell.
In [4]:
%%testcell import_statements -n
import os
import sys
testmynb
commandline¶
Run the testmynb
command, and the command line tool searches for all the .ipynb
files with the test_
prefix and runs the designated test cells.
In [5]:
!testmynb
========================== Test My Notebook (0.0.1) ==========================
Platform darwin
Python 3.7.1
Working Directory: ${PWD}
7 test cells across 2 notebook(s) detected.
Notebooks:
Trusted test_how_to.ipynb: ...
Untrusted test_why_use_testmynb.ipynb: ....
============== 7 test(s) passed, 0 failed, and 0 raised an error ==============