User documentation http://python.qa-automation-starter.aherscu.dev/
Open in Codespace or Dev Container and everything will get installed and configured, otherwise:
-
Install Python 3.13 on your system
-
Install PDM:
pipx install pdm[all]
-
Install dependencies:
pdm run install-all
NOTE: This must be run whenever new dependencies, or versions are changed.
-
Run all tests from the root:
pdm run pytest
-
Generate Allure reports
pdm run allure-generate
-
Serve MkDocs site
pdm run mkdocs-serve
then open http://127.0.0.1:8000/qa-automation-python in a browser
qa-automation-python/
├── qa-testing-utils/ # Shared low-level utility functions
├── qa-pytest-commons/ # Technology-agnostic test infrastructure
├── qa-pytest-rest/ # REST-specific steps and config
├── qa-pytest-webdriver/ # Selenium-specific implementation
├── qa-pytest-template/ # TBD: Cookiecutter project template
├── qa-pytest-examples/ # Usage examples for application test projects
├── pyproject.toml # Root environment definition for PDM
└── .vscode/ # Recommended settings for VSCode integration
-
branch
-
commit changes
-
pull request -- will trigger a build
-
build succeeds --> tag with vX.X.X, e.g. v1.2.3 -- will trigger a release:
4.1. ensure you are on main and up-to-date
4.2. verify which tags exists in local repo
git tag
4.3. create new tag, e.g.
v0.0.8
git tag v0.0.8
4.4. push it
git push origin v0.0.8
-
verify new versions appeared on https://pypi.org/
Whenever adding a new global symbol (class/method/constant), these might need
to be exported, thus listed in the __init__.py
of the respective module.
Can be done automatically with mkinit
:
pdm run regenerate-init
Before committing:
pdm run format-all
cd qa-automation-python
pdm plugin add pdm-init # if not already available
pdm init # or copy an existing module like qa-testing-utils
Then edit pyproject.toml
accordingly.
This project is licensed under the Apache 2.0 License.