pytest-ekstazi
pytest-ekstazi is a plugin for pytest that selects the test cases that need to be run based on the Ekstazi algorithm.
Requirements
You will need the following prerequisites in order to use pytest-ekstazi:
- Python 3.7 or newer
- Pytest 6.0.0 or newer
Installation
To install pytest-ekstazi:
pip install pytest-ekstazi
Selecting the test cases
Use the --ekstazi command line option to enable the plugin. For the first session the plugin is going to run the entire test suite and map the depedencies of each test function. The next executions, Ekstazi is going to check for each test function if their dependency files have changed. Just test cases with depedencies that have changed will run.
pytest --ekstazi .
For every run, the plugin saves/updates the dependency tree, last test results and dependency hashes in a configuration file. By default the configuration file is saved in working directory under name ekstazi.json. You can change the configuration file location by doing:
pytest --ekstazi --ekstazi-file path/to/bar.json
Run the plugin always in the same directory or pass full path of the configuration file, otherwise the plugin will not be able to select the test case based on previous result.
Development
To setup the development environment, first make sure Python >= 3.7 is installed in your machine. So clone the repo:
git clone https://github.com/Igorxp5/pytest-ekstazi.git
Open the project directory and install the plugin in editable-mode:
pip install -e .
Credits
Ekstazi is Regression Test Selection algorithm created by Milos Gligoric, Lamyaa Eloussi, and Darko Marinov. Check out the their research paper.
Release files for pytest-ekstazi 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pytest-ekstazi-1.0.0.tar.gz | 6.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pytest_ekstazi-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.5 kB
Release files / pytest-ekstazi-1.0.0.tar.gz
| Download URL | pytest-ekstazi-1.0.0.tar.gz |
|---|---|
| Size | 6.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8dfe6aa36889dd696cf267e18005e2480f3c593e87ac7a956bc7f445ec3330fd
|
|
BLAKE2b-256 checksum How to use checksums |
88999b2320b603b6d64590f9798c81ea1e2a89dbf3412aa376be25d8686425c7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.10.6
|
Release files / pytest_ekstazi-1.0.0-py3-none-any.whl
| Download URL | pytest_ekstazi-1.0.0-py3-none-any.whl |
|---|---|
| Size | 7.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6583de075851404673f3bcdcfabd944252e8b4722ed538adeec5b0f8ad201985
|
|
BLAKE2b-256 checksum How to use checksums |
1d135b7a272a603081477d28607826c66efd2eb94521931fd9b51f1965ca4b51
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.10.6
|