|
|
|
|
@ -7,10 +7,31 @@ set -x
|
|
|
|
|
# common args for all tests
|
|
|
|
|
common=(--venv --color --truncate 0 "${@}")
|
|
|
|
|
|
|
|
|
|
# run a lightweight test that generates code coverge output
|
|
|
|
|
ansible-test sanity --test import "${common[@]}" --coverage
|
|
|
|
|
# run a lightweight test that generates code coverage output
|
|
|
|
|
ansible-test sanity --test import "${common[@]}" --coverage --python "${ANSIBLE_TEST_PYTHON_VERSION}"
|
|
|
|
|
|
|
|
|
|
# run an integration test that generates code coverage for a Python file within the integration test
|
|
|
|
|
ansible-test integration "${common[@]}" --coverage
|
|
|
|
|
|
|
|
|
|
# run a unit test that generates code coverage using a venv
|
|
|
|
|
ansible-test units "${common[@]}" --coverage --python "${ANSIBLE_TEST_PYTHON_VERSION}" --venv
|
|
|
|
|
|
|
|
|
|
# report on code coverage in all supported formats
|
|
|
|
|
ansible-test coverage report "${common[@]}"
|
|
|
|
|
ansible-test coverage report "${common[@]}" | tee coverage.report
|
|
|
|
|
ansible-test coverage html "${common[@]}"
|
|
|
|
|
ansible-test coverage xml "${common[@]}"
|
|
|
|
|
|
|
|
|
|
# ensure import test coverage was collected
|
|
|
|
|
grep '^plugins/module_utils/test_util.py .* 100%$' coverage.report
|
|
|
|
|
|
|
|
|
|
# ensure integration test coverage was collected
|
|
|
|
|
grep '^tests/integration/targets/hello/world.py .* 100%$' coverage.report
|
|
|
|
|
|
|
|
|
|
# ensure unit test coverage was collected
|
|
|
|
|
grep '^tests/unit/test_something.py .* 100%$' coverage.report
|
|
|
|
|
|
|
|
|
|
# ensure tests/output/ (from --venv) does not appear in the coverage report (except in the report filename)
|
|
|
|
|
if grep "^tests/output/" coverage.report; then
|
|
|
|
|
echo "unexpected coverage output: tests/output/"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|