v0.1.0
Changelog
All notable changes to this project are documented here.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
Unreleased
0.1.0 - 2026-05-23
Initial release.
Added
PytestOperator— runs a pytest suite as an Airflow task, parses the JUnit
report into a structured result, optionally pushes a summary to XCom under the
pytest_resultkey, and fails the task on test failure (configurable via
fail_on_test_failure).PytestRunnerabstraction with a defaultSubprocessPytestRunnerthat runs
python -m pytestin a child process using the worker's own interpreter and
virtualenv.ResultParserabstraction with a defaultJUnitResultParser(uses
defusedxmlwhen available via thesecure-xmlextra).- Airflow 2.x / 3.x compatibility through a single
compat.airflowshim. - Graceful cancellation:
on_killterminates the whole pytest process tree
(SIGTERM→grace_period→SIGKILL), coveringxdistworkers and nested
processes. - Automatic working-directory resolution so relative paths in pytest
addopts
(e.g. Allure's--alluredir) resolve next to the tests. - Temporary report-directory cleanup with
cleanuppolicy
("always"|"on_success"|"never"); user-suppliedreport_diris never
removed; cleanup also runs on task kill. runtimeout support and clearTestExecutionErrorwhen pytest produces no
report (collection error, crash, wrong path).push_result=Falsesuppresses all XCom output, including Airflow's automatic
return-value push.- Packaged as an Airflow provider (
get_provider_infoentry point), Apache-2.0
licensed.