A Jupyter kernel for interactive acceptance-test-driven development with the Robot Framework
Project description
Robotkernel
Robot Framework IPython kernel for Jupyter Notebook and JupyterLab.
Requires Python 3.6 or later and Robot Framework 3.1b1 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
Changelog
0.9.0 (2019-01-04)
New featurs:
Rewrite status updater to the status of currently run test as trobber | test name | keyword name | robot.api.logger.console message [datakurre]
Add embedded log and report to include Download-links at top right corner [datakurre]
Add to display the results of the last executed keyword as the notebook result for the executed code cell [datakurre]
Add syntax highlighting for variables and assignment operators [datakurre]
Bug fixes:
Fix issue where setup.cfg contained OS specific path separators preventing build on Windows [datakurre]
Fix issue where PNGs were interpreted as APNG on Windows preventing them from being rendered on Windows [datakurre]
Update example notebook to use SeleniumLibrary and SeleniumScreenshots instead of SeleniumLibrary and Selenium2Screenshots [datakurre]
Add to always reload libraries imported from other notebooks [datakurre]
0.8.0 (2018-12-14)
Add to auto-import nbimporter when available to make it possible to import eg. keyword libraries from Python notebooks [datakurre]
Fix issue where nbrobot did support %%python module magic [datakurre]
0.7.1 (2018-11-20)
Add to require robotframework >= 3.1b1 in requires
0.7.0 (2018-10-31)
Breaking:
Requires robotframework >= 3.1b1
Other:
Add to create nbreader and nblibdoc cli to run robot with notebook reader support [datakurre]
Add Selenium completions to sometimes include raw Simmer results with simplfied id completion results [datakurre]
Add proof-of-concept selector completion for Appium and AutoIT libraries [datakurre]
Fix screenshot processor to also discover images with absolute path or within the current working directory [datakurre]
0.6.3 (2018-10-19)
This is the last release compatible with robotframework < 3.1
Remove deprecated replace-flag from kernel installer [datakurre]
0.6.2 (2018-10-19)
Fix compatibility issue with robotframework < 3.1 [datakurre]
0.6.1 (2018-10-19)
Fix issue where kernel installation produced broken kernel.json on Windows [datakurre]
0.6.0 (2018-10-18)
Revert data source path from temporary directory into current working directory to allow local libraries and resources work in the usual use cases [datakurre]
Add experimental Simmerjs based CSS-selector builder and element picker with when auto-completion is called with empty “css:”-selector [datakurre]
Add experimental Selenium selector auto-completion [datakurre]
Add dummy variable completion with only variables from current suite without context knowledge [datakurre]
Add inline documentation links to Robot Framework User Guide for structural keywords [datakurre]
0.5.4 (2018-10-09)
Fix issue where single term keywords got no completions [datakurre]
0.5.3 (2018-10-09)
Update README [datakurre]
0.5.1 (2018-10-08)
Auto completion and keyword doc inspection enhancements [datakurre]
0.5.0 (2018-10-08)
Add auto-completion, keyword doc inspection and support for replacing and deleting cell history on Jupyter lab [datakurre]
0.4.0 (2018-09-26)
Add support for robotframework 3.1a2 [datakurre]
Add support for reporting RPA suites with “Tasks” instead of “Tests” [datakurre]
0.3.5 (2018-09-25)
Update README with notebook execution instructions [datakurre]
0.3.4 (2018-09-25)
Update README [datakurre]
0.3.3 (2018-09-25)
Note on README that Log | Report -links require trusting the notebook [datakurre]
Fix to wrap test execution updates with ‘<pre>’ for better readability [datakurre]
0.3.2 (2018-09-25)
Change to always send display data updates in text/html to workaround a bug that caused ‘undefined’ to be rendered in JupyterLab [datakurre]
0.3.1 (2018-09-24)
Update README [datakurre]
0.3.0 (2018-09-23)
First release. [datakurre]
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for robotkernel-0.9.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | df3e3523bb014d5663900472a8e1e75a1535e8ee16afcae0293eee48396e138c |
|
MD5 | fff2311309a6cd4ce5435d7b2a93286b |
|
BLAKE2b-256 | 6fbb67f1976d58d627f1202fa8308a0535b58a636b946445b52e49e99689a892 |