diff --git a/test/runner/injector/virtualenv-isolated.sh b/test/runner/injector/virtualenv-isolated.sh new file mode 100644 index 00000000000..82f799809eb --- /dev/null +++ b/test/runner/injector/virtualenv-isolated.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +# Create and activate a fresh virtual environment with `source virtualenv-isolated.sh`. + +rm -rf "${OUTPUT_DIR}/venv" +"${ANSIBLE_TEST_PYTHON_INTERPRETER}" -m virtualenv --python "${ANSIBLE_TEST_PYTHON_INTERPRETER}" "${OUTPUT_DIR}/venv" +set +ux +source "${OUTPUT_DIR}/venv/bin/activate" +set -ux + +if [[ "${ANSIBLE_TEST_COVERAGE}" ]]; then + pip install coverage -c ../../../runner/requirements/constraints.txt --disable-pip-version-check +fi diff --git a/test/runner/lib/executor.py b/test/runner/lib/executor.py index 4e6d1b440fd..054b964c3b4 100644 --- a/test/runner/lib/executor.py +++ b/test/runner/lib/executor.py @@ -1152,6 +1152,7 @@ def integration_environment(args, target, test_dir, inventory_path, ansible_conf JUNIT_OUTPUT_DIR=os.path.abspath('test/results/junit'), ANSIBLE_CALLBACK_WHITELIST=','.join(sorted(set(callback_plugins))), ANSIBLE_TEST_CI=args.metadata.ci_provider, + ANSIBLE_TEST_COVERAGE='check' if args.coverage_check else ('yes' if args.coverage else ''), OUTPUT_DIR=test_dir, INVENTORY_PATH=os.path.abspath(inventory_path), )