首页 > 代码库 > openstack开发环境与代码测试

openstack开发环境与代码测试

一、openstack单组件开发环境

1、Python虚拟环境搭建

说明:

  Python虚拟环境主要是一个与系统中Python第三方库相对应的隔离环境,可以在这个虚拟环境中安装程序及依赖库而不会对系统中的库产生影响。所以,我们可以先搭建Python虚拟环境,然后将openstack的组件安装到虚拟环境中,在虚拟环境中进行开发和测试!

安装:

yum install python-virtualenv   #centos系统下

pip install virtualenv #使用pip工具安装

创建和使用虚拟环境:

virtualenv virtenv              #virtenv为虚拟环境目录source virtenv/bin/activate     #启动虚拟环境,命令行提示符会多出"(virtenv)"表示进入虚拟环境
pip install ... #在虚拟环境中安装程序...

虚拟环境目录:

共包含bin、include、lib、lib64,全部都是对/usr目录下对应文件夹的虚拟映射

注意事项:
Python可执行文件头#!后如果列出具体的Python路径,则指明了某个环境,如果要让其可以跨虚拟环境,则可以指定为#!/usr/bin/env python

 

2、Python单元测试

  高质量的代码编写肯定离不开单元测试,Python的标准库和第三方库提供了很多单元测试的支持,主要列出如下两个:

1)unittest(Python标准库)

https://docs.python.org/2/library/unittest.html?highlight=unittest#module-unittest

2)testtools(对unittest的扩展和增强,功能更加强大)

http://testtools.readthedocs.org/en/latest/

  

3、openstack组件开发环境具体搭建

1)使用git clone 下载源码库

2)在源码库目录中建立Python虚拟环境

3)安装组件依赖及组件

pip install -r requirements.txtpip install -r test-requirements.txt
cp 源码库中组件源代码 虚拟环境site-packages目录

4)运行组件源代码中已有的单元测试案例

python -m testtools.run xxx

说明:

  以上步骤基本遵循openstack官方文档和代码的说明,具体细节有所差异,在openstack的每个组件的开发者文档(http://docs.openstack.org/developer/openstack-projects.html)中均有说明如何搭建开发环境和做测试,openstack实际上已经将以上步骤写成脚本,可以直接运行,但是考虑到网络下载的原因,所以采用以上分步进行的方式,方便差错。下面是官方在这方面的主要说明文献:

https://wiki.openstack.org/wiki/Testing#Unit_Tests

(其中使用了tox测试工具,tox可以将工程和指定依赖包部署到虚拟环境中并运行你设置的所有测试案例,相当于模拟了工程实际部署后的测试情况,主要参考文献:https://testrun.org/tox/latest/index.html )

 

二、openstack集成开发环境

1、使用packstack或devstack部署完整的openstack平台环境

2、openstack集成测试  

1)将待测试组件的可执行启动脚本拷贝到组件虚拟环境的bin目录下

2)停掉平台中原来运行的待测试组件

3)进入组件虚拟环境,执行待测组件的启动脚本,此时可以在终端运行虚拟环境中的待测组件程序

4)在平台中进行操作和测试

说明:

  基本参考了openstack官方的方案,官方文档中这部分主要说明: https://wiki.openstack.org/wiki/Testing#IntegrationTests ( 其中主要使用了DevStack进行openstack的安装,然后在实际运行环境中进行代码的测试!)

 

openstack开发环境与代码测试