Solum/Testing
< Solum
目录
Solum 测试
目前 Solum 依赖于 OpenStack Keystone, Nova, Heat, Glance, Swift, Barbican, Mistral 和 Marconi。未来可能会添加其他依赖项。我们建议使用 Devstack 来设置 Solum 及其各种底层服务。请参阅 入门指南,了解有关如何设置您的 Devstack 环境的信息。您可以使用提供的 Vagrant 设置,或者您可以自行配置 Devstack。
功能测试、单元测试和 PEP8(OpenStack 风格指南)检查通过我们的 Stackforge gate jobs 在提交新代码以供 git 仓库 审查时自动运行,并在合并之前再次自动测试。要在此处运行这些测试在您的本地 Solum Vagrant/Devstack 环境中,请按照以下步骤操作。
Tempest 设置
Solum 使用 tempest 功能测试框架。要手动设置 tempest
检出 tempest 代码
cd ${DEVSTACK_DIR}
git clone https://github.com/openstack/tempest.git
创建 tempest 配置文件
cd ${DEVSTACK_DIR}/tempest/etc
cp tempest.conf.sample tempest.conf
将 tempest 配置文件复制到适当的位置
sudo mkdir -p /etc/tempest
sudo cp ${DEVSTACK_DIR}/tempest/etc/tempest.conf /etc/tempest/tempest.conf
配置 Tempest
将以下文本添加到 etc/tempest.conf
[DEFAULT] debug=True use_stderr=False log_file=tempest.log [identity] auth_version = v2 admin_domain_name = Default admin_tenant_name = admin admin_password = solum admin_username = admin alt_tenant_name = alt_demo alt_password = solum alt_username = alt_demo tenant_name = demo password = solum username = demo uri_v3 = http://10.0.2.15:5000/v3/ uri = http://10.0.2.15:5000/v2.0/
注意:uri_v3 和 uri 设置应与您运行 Keystone 实例的位置相对应。
运行功能测试
设置 Tempest 后,您可以执行您的功能测试
cd ${DEVSTACK_DIR}/solum/functionaltests
export TEMPEST_DIR=${DEVSTACK_DIR}/tempest
./run_tests.sh
您可以选择运行特定的功能测试
cd ${DEVSTACK_DIR}/solum
export PYTHONPATH=$PYTHONPATH:${DEVSTACK_DIR}/tempest
nosetests --tests dir_name1[.dir_name2...dir_nameN].test_file_name:TestClassName.test_method_name
Example: nosetests --tests functionaltests.api.v1.test_plan:TestPlanController.test_plans_create
运行单元测试
您可以使用 tox 和您的本地 python 版本(示例为 Python 2.7)
cd ${DEVSTACK_DIR}/solum
tox -e py27
您可以选择运行特定的单元测试
cd ${DEVSTACK_DIR}/solum
tox -e py27 -- dir_name1[.dir_name2...dir_nameN].test_file_name:TestClassName.test_method_name
Example: tox -e py27 -- solum.tests.api.handlers.test_assembly:TestAssemblyHandler.test_assembly_get
如果您想调试特定的单元测试
cd ${DEVSTACK_DIR}/solum
python -m testtools.run solum.tests.deployer.handlers.test_heat.HandlerTest.test_check_stack_status
您可能需要 pip 安装以下内容:mock, oslotest
在 CentOS 6.5 上,可能需要以下附加软件包
sudo yum -y install openssl-devel python-devel libffi-devel python-lxml libxml2-devel libxslt-devel
在 Ubuntu 上
sudo apt-get install libxml2-dev libxslt-dev
运行 PEP8 检查
您可以使用 tox
cd ${DEVSTACK_DIR}/solum
tox -e pep8