Paraworld is a BDD framework using the Gherkin language for writing automated tests. The framework is written in Python 3.9. It is created to allow the ease of writing concurrent and parallel scenarios.
The framework supports the following distinct features:
- Run scenarios concurrently
- Run scenarios in parallel
- Run steps concurrently
- Apply ordering and dependency for scenarios
- Timeline visualization
- Dependency visualization
- Report visualization
To use the framework install it through pip:
pip install paraworld
Below is the documentation for all the versions.
- Version 1.6.0
- Version 1.5.0
- Version 1.4.0
- Version 1.3.0
- Version 1.2.0
- Version 1.1.2
- Version 1.1.1
- Version 1.1.0
- Version 1.0.0
See the changelog for changes.
The following table shows the features available in which versions:
Feature | Version | Description |
---|---|---|
Parallel scenarios | 1.0.0 > | Support running scenarios simultaneously in another process |
Concurrent scenarios | 1.0.0 > | Support running scenarios simultaneously in another thread |
Concurrent steps | 1.0.0 > | Support running steps simultaneously in another thread |
Scenario dependency | 1.0.0 > | Support order of execution based on dependent scenarios |
Scenario groups | 1.0.0 > | Support having scenarios in groups to allow for group dependency |
Filter scenarios based on tags | 1.1.0 > | Support only running scenarios based on tags |
Specifying a directory to run feature files from | 1.1.0 > | Support recursively run all feature files in a directory |
Feedback system | 1.2.0 > | Allows notification to be sent during execution flow |
JUnit XML report | 1.3.0 > | Support generating JUnit XML report |
Before and After scenarios | 1.4.0 > | Support methods to be run before and after scenarios |
Scoped context for scenarios | 1.5.0 > | BREAKING changes!!! Now all step functions supports retrieving and modifying values in scope of the current scenario |
Support different filepath for generated reports | 1.6.0 > | Support specifying different filepaths for generated reports, timeline, junit and dependency files |
If you wish to build the paraworld or develop it locally the following will guide you through the process.
If you are not familiar with Python virtual environment then refer to this for further reference.
To test the build locally create a virtual environment:
python -m venv paraworld-env
Then you can activate the virtual env:
Windows
paraworld-env\Scripts\activate.bat
Linux
source paraworld-env/bin/activate
If not already installed then install the build package:
python -m pip install --upgrade build
Build the report first by doing the following:
Window:
cd report
npm run build_window
cd ..
Linux:
cd report
npm run build_linux
cd ..
Then run the build command
python -m build
This will create a gz and whl file inside the dist folder
To test the build locally create a virtual environment:
Windows:
python -m venv test-env
test-env\Scripts\activate.bat
Linux:
python -m venv test-env
source test-env/bin/activate
Then run pip install the whl file that is created by the build command:
pip install <path to paraworld whl file>
So if the whl file is in dist and called paraworld-0.0.1-py3-none-any.whl then run:
pip install dist/paraworld-0.0.1-py3-none-any.whl
Now lets test the installed package, by running the test file test_local_build.py:
cd test
python test_local_build.py
Before publishing to PyPI you can upload to TestPyPI for testing the package:
python -m twine upload --repository testpypi dist/*
This will upload whatever is in the dist folder to TestPyPI.
To test out the newly published package:
python -m pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ paraworld