magnum/doc/source/dev/functional-test.rst

85 lines
2.5 KiB
ReStructuredText

===========================
Run functional test locally
===========================
This is a guide for developers who want to run functional tests in their local
machine.
Prerequisite
============
You need to follow the developer quickstart guide to deploy Magnum in a
devstack environment
`<http://docs.openstack.org/developer/magnum/dev/quickstart.html>`_
Preparation
===========
Navigate to Magnum directory::
cd /opt/stack/magnum
Prepare a config file for functional test::
cp /opt/stack/tempest/etc/tempest.conf /opt/stack/magnum/etc/tempest.conf
cp functional_creds.conf.sample functional_creds.conf
# update the IP address
HOST=$(cat /etc/magnum/magnum.conf | awk '/^host = /{print $3}')
sed -i "s/127.0.0.1/$HOST/" functional_creds.conf
# update admin password
source /opt/stack/devstack/openrc admin admin
iniset functional_creds.conf admin pass $OS_PASSWORD
# update demo password
source /opt/stack/devstack/openrc demo demo
iniset functional_creds.conf auth password $OS_PASSWORD
Create the necessary keypair and flavor::
source /opt/stack/devstack/openrc admin admin
nova keypair-add --pub-key ~/.ssh/id_rsa.pub default
nova flavor-create m1.magnum 100 1024 8 1
source /opt/stack/devstack/openrc demo demo
nova keypair-add --pub-key ~/.ssh/id_rsa.pub default
You may need to explicitly upgrade required packages if you've installed them
before and their versions become too old::
UPPER_CONSTRAINTS=/opt/stack/requirements/upper-constraints.txt
sudo pip install -c $UPPER_CONSTRAINTS -U -r test-requirements.txt
Run the test
============
We'v splited functional testing per COE.
Use follow command lines to check what functional testing is supported::
cd /opt/stack/magnum
cat tox.ini | grep functional- | awk -F: '{print $2}' | sed s/]//
To do some specify functional testing, for example, test kubernetes functional
cases::
tox -e functional-k8s -- --concurrency=1
Test specified case of kubernetes functional cases::
tox -e functional-k8s -- --concurrency=1 <test path>
The following is an example for test path::
magnum.tests.functional.k8s.v1.test_k8s_python_client.TestBayModelResource.test_baymodel_create_and_delete
We also have api tests being added. To run those, go to
tempest directory (tempest is installed with devstack by default), install
magnum, and execute tempest tox::
cd /opt/stack/tempest
tox -eall-plugin magnum.tests.functional.api.v1 -- --concurrency=1