Add ability to selectively run ansible tests
Now that the Ansible module tests can be run via tox, it might be nice to allow developers the ability to selectively run individual module tests (accomplished via Ansible tags) from tox. Change-Id: I38a3040a7157a9bcf1cda76e26ab11577e9f80a6
This commit is contained in:
parent
536796e8f9
commit
1ac8530c25
@ -5,16 +5,27 @@
|
||||
# Script used to setup a tox environment for running Ansible. This is meant
|
||||
# to be called by tox (via tox.ini). To run the Ansible tests, use:
|
||||
#
|
||||
# tox -e ansible
|
||||
# tox -e ansible [TAG]
|
||||
#
|
||||
# USAGE:
|
||||
# run-ansible-tests.sh <envdir>
|
||||
# run-ansible-tests.sh <envdir> [TAG]
|
||||
#
|
||||
# PARAMETERS:
|
||||
# <envdir> Directory of the tox environment to use for testing.
|
||||
# [TAG] Optional list of space-separated tags to control which
|
||||
# modules are tested.
|
||||
#
|
||||
# EXAMPLES:
|
||||
# # Run all Ansible tests
|
||||
# run-ansible-tests.sh ansible
|
||||
#
|
||||
# # Run auth, keypair, and network tests
|
||||
# run-ansible-tests.sh ansible auth keypair network
|
||||
#############################################################################
|
||||
|
||||
ENVDIR=$1
|
||||
shift
|
||||
TAGS=$( echo "$@" | tr ' ' , )
|
||||
|
||||
if [ -d ${ENVDIR}/ansible ]
|
||||
then
|
||||
@ -32,4 +43,9 @@ source $ENVDIR/bin/activate
|
||||
source $ENVDIR/ansible/hacking/env-setup
|
||||
|
||||
# Run the shade Ansible tests
|
||||
ansible-playbook -vvv ./shade/tests/ansible/run.yml -e "cloud=devstack-admin"
|
||||
tag_opt=""
|
||||
if [ "${TAGS}" != "" ]
|
||||
then
|
||||
tag_opt="--tags ${TAGS}"
|
||||
fi
|
||||
ansible-playbook -vvv ./shade/tests/ansible/run.yml -e "cloud=devstack-admin" ${tag_opt}
|
||||
|
@ -3,18 +3,24 @@ OpenStack modules. You will need a clouds.yaml file in order to run
|
||||
the tests. You must provide a value for the `cloud` variable for each
|
||||
run (using the -e option) as a default is not currently provided.
|
||||
|
||||
If you want to run these tests against devstack, it is easiest to use
|
||||
the tox target. This assumes you have a devstack-admin cloud defined
|
||||
in your clouds.yaml file that points to devstack. Some examples of
|
||||
using tox:
|
||||
|
||||
Examples
|
||||
--------
|
||||
tox -e ansible
|
||||
|
||||
* Run all module tests against a provider:
|
||||
tox -e ansible keypair security_group
|
||||
|
||||
If you want to run these tests directly, or against different clouds,
|
||||
then you'll need to use the ansible-playbook command that comes with
|
||||
the Ansible distribution and feed it the run.yml playbook. Some examples:
|
||||
|
||||
# Run all module tests against a provider
|
||||
ansible-playbook run.yml -e "cloud=hp"
|
||||
|
||||
* Run only the keypair and security_group tests:
|
||||
|
||||
# Run only the keypair and security_group tests
|
||||
ansible-playbook run.yml -e "cloud=hp" --tags "keypair,security_group"
|
||||
|
||||
* Run all tests except security_group:
|
||||
|
||||
# Run all tests except security_group
|
||||
ansible-playbook run.yml -e "cloud=hp" --skip-tags "security_group"
|
||||
|
2
tox.ini
2
tox.ini
@ -33,7 +33,7 @@ commands = python setup.py testr --coverage --testr-args='{posargs}'
|
||||
[testenv:ansible]
|
||||
# Need to pass some env vars for the Ansible playbooks
|
||||
passenv = HOME USER
|
||||
commands = {toxinidir}/extras/run-ansible-tests.sh {envdir}
|
||||
commands = {toxinidir}/extras/run-ansible-tests.sh {envdir} {posargs}
|
||||
|
||||
[flake8]
|
||||
# Infra does not follow hacking, nor the broken E12* things
|
||||
|
Loading…
x
Reference in New Issue
Block a user