Robot Framework IPython kernel for Jupyter Notebook and JupyterLab. Check a video to see it in action.
Requires Python 3.6 or later with setuptools 40.5.0 later and Robot Framework 3.1 or later.
Log | Report -links on existing notebooks are only active on trusted notebooks.
Jupyter Notebook: https://mybinder.org/v2/gh/robots-from-jupyter/robotkernel/master?urlpath=tree/example.ipynb
JupyterLab: https://mybinder.org/v2/gh/robots-from-jupyter/robotkernel/master?urlpath=lab/tree/example.ipynb
$ pip install robotkernel
For JupyterLab you should also install the companion syntax highlighting and Jupyter widgets support:
$ jupyter labextension install jupyterlab_robotmode
$ jupyter labextension install @jupyter-widgets/jupyterlab-manager
For some environments it might be required to run the following command to manually register robotkernel as Jupyter kernel:
$ python -m robotkernel.install
!pip install robotkernel
After refreshing the notebook, it is possible change the kernel to Robot Framework kernel or create a new notebook with Robot Framework kernel.
For JupyterLab you should also install the companion syntax highlighting and Jupyter widgets support:
!jupyter labextension install jupyterlab_robotmode
!jupyter labextension install @jupyter-widgets/jupyterlab-manager
It is possible to export test suites direclty from Jupyter Notebook or JupyterLab user interface (into traditional .robot
files), but also from command line:
$ jupyter nbconvert --to script example.ipynb
Robotkernel installs script named nbrobot
, which the Robot Frameworks test runner robot
with support for executing Jupyter notebooks created with Robotkernel:
$ nbrobot example.ipynb
In addition, it is also possible to execute notebooks as such, resulting into a new notebook with embedded execution logs and reports:
$ jupyter nbconvert --to notebook --execute example.ipynb
This will stop the execution at first failing test case.
When execution with errors, to also get a result notebook with execution logs saved, an extra flag --ExecutePreprocessor.allow_errors=True
must be set:
$ jupyter nbconvert --ExecutePreprocessor.allow_errors=True --to notebook --execute example.ipynb
This may change in future versions of nbconvert.
Note that when executing a notebook, each cell with tests cases or tasks will be executed as its own suite. It might be more efficient to export notebook into a robot script and execute that with the traditional robot runner.
See also: http://jupyter.readthedocs.io/en/latest/install.html
Create and activate clean Python virtual environment:
$ venv myenv $ source myenv/bin/activate
Install Jupyter:
$ pip install --upgrade pip setuptools $ pip install jupyter
Clone this kernel:
$ git clone https://github.com/robots-from-jupyter/robotkernel.git $ cd robotkernel
Install the kernel into virtualenv in develop mode:
$ python setup.py develop
Launch the jupyter:
$ jupyter notebook
Reloading the kernel reloads the code.
Nix-shell (https://nixos.org/nix/)
This repository includes opinionated instructions for running and developing Robotkernel with Nix for Jupyter Notebook:
$ nix-shell -E 'import (fetchTarball https://github.com/robots-from-jupyter/robotkernel/archive/master.tar.gz + "/shell.nix")' --run "jupyter notebook"
And for Jupyter Lab:
$ nix-shell -E 'import (fetchTarball https://github.com/robots-from-jupyter/robotkernel/archive/master.tar.gz + "/shell.nix")'
$ jupyter labextension install jupyterlab_robotmode --app-dir=.jupyterlab
$ jupyter lab --app-dir=.jupyterlab
$ exit
Add --arg sikuli true
to include SikuliLibrary.
Add --arg vim true
to enable vim bindings.
Development environment with Nix:
$ git clone https://github.com/robots-from-jupyter/robotkernel.git
$ cd robotkernel
$ nix-build setup.nix -A env # to generate ./result/bin/python for IDE
$ nix-shell setup.nix -A develop