Robot Framework IPython kernel for Jupyter Notebook and JupyterLab
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

README.rst

Robotkernel

Robot Framework IPython kernel for Jupyter Notebook and JupyterLab.

Requires Python 3.6 or later.

Log | Report -links on existing notebooks are only active on trusted notebooks.

Try Robotkernel at Binder

Jupyter Notebook: https://mybinder.org/v2/gh/datakurre/robotkernel/master?urlpath=tree/example.ipynb

JupyterLab: https://mybinder.org/v2/gh/datakurre/robotkernel/master?urlpath=lab/tree/example.ipynb

Install Robotkernel

$ pip install robotkernel
$ python -m robotkernel.install

For JupyterLab you should also install the companion syntax highlighting:

$ jupyter labextension install jupyterlab_robotmode

Install Robotkernel from Python 3 notebook

!pip install robotkernel
!python -m robotkernel.install

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:

!jupyter labextension install jupyterlab_robotmode

Export robot files

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

Execute notebooks

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.

Local installation and development

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/datakurre/robotkernel.git
$ cd robotkernel

Install the kernel into virtualenv in develop mode:

$ python setup.py develop

Install the kernel into jupyter:

$ python -m robotkernel.install

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/datakurre/robotkernel/archive/master.tar.gz + "/shell.nix")' --run "jupyter notebook"

And for Jupyter Lab:

$ nix-shell -E 'import (fetchTarball https://github.com/datakurre/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/datakurre/robotkernel.git
$ cd robotkernel
$ nix-build setup.nix -A env  # to generate ./result/bin/python for IDE
$ nix-shell setup.nix -A develop