一、openstack单组件开发环境

1、Python虚拟环境搭建

主要参考文献:

https://virtualenv.pypa.io/en/latest/virtualenv.html

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

安装:

yum install python-virtualenv   #centos系统下

pip install virtualenv #使用pip工具安装

创建和使用虚拟环境:

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

虚拟环境目录:

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

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

2、openstack单组件开发环境具体搭建步骤

1)使用git clone 下载源码库

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

3)注意修改组件的配置文件,将可执行脚本拷贝到虚拟环境的bin目录中

4)安装组件依赖及组件

pip install -r requirements.txt
pip install -r test-requirements.txt
cp 源码库中组件源代码 虚拟环境site-packages目录 #或者使用python setup.py ...安装组件

5)运行组件源代码中已有的单元测试案例,另外还可以自己编写测试案例

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集成测试

2.1 推荐方法

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

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

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

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

2.2 粗糙方法

  利用软连接将系统原来的模块替换成自己开发的模块。其中,后台服务模块如nova、cinder、glance等都可以直接使用,但是前端如xxxclient及openstack-dashboard则不能使用(本人亲测时出现模块导入问题!)。

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

openstack开发环境与代码测试的更多相关文章

  1. DevStack部署OpenStack开发环境 - 问题总结

    建议在使用DevStack搭建OpenStack开发环境前,先安装好开发工具包组.特别是gcc,主要一定是在yum update -y 之前,否则更新完系统后,在安装开发工具包会出现很多依赖包因为版本 ...

  2. Windows10 + Visual Studio 2017 + CMake +OpenCV编译、开发环境配置及测试

    由于最近需要使用OpenCV,本人需要在自己的PC上使用OpenCV,因此最近一直在研究如何使用Visual Studio编译OpenCV源代码并搭建开发环境,折腾了很长时间,查阅了很多相关资料,终于 ...

  3. 使用开源my-deploy工具实现开发环境的代码自动化部署

    @编者按: 由于公司内部存在的开发系统:内网开发--外网预发布--外网生产环境,程序员频繁的更新代码造成运维人员大量时间被占用,于是有了使用该开源工具的部署测试环节.在这里感谢该开源工具的作者,也希望 ...

  4. 最新 obs-studio vs2019 开发环境搭建 代码编译

    距离上一篇文章很久了,重新开始记录 OBS 开发相关情况,第一步就是环境搭建,第二步是构建 OBS-Studio VS 2019 开发环境搭建 下载软件和资源 软件安装没有特别说明的,下载安装即可. ...

  5. ae(ArcEngine) java swing开发入门系列(1):开发环境和代码部署

    前言:做ae开发大部分人都是用C#版,很少用到java版,本系列文章主要介绍java版ae开发的入门,对于ae接口的高级应用,可以看C#版相关文章 开发环境软件: Intellij IDEA 2018 ...

  6. .NET Core windows开发环境 + Git代码控管 + Docker 部署环境搭建

    开发环境准备 下载vs code,.NET Core sdk: https://www.microsoft.com/net/core#windowscmd 目前最新版为code 1.8.1,.NET ...

  7. 1、搭建springMVC开发环境以及HelloWorld测试

    一.下载spring-framework,采用简单的方式: http://repo.springsource.org/libs-release-local/org/springframework/sp ...

  8. XE10 塔建 Android 开发环境 (已测试通过)

    XE10 塔建 Android 开发环境 1. E:\DevCSS\Android\adt-bundle-windows-x86-20131030\adt-bundle-windows-x86-201 ...

  9. 内部开发环境 git代码托管说明

    前言 随着员工的增加 代码的开发版本管理 提上了日程.初步计划: 1 一台机器 192.168.1.240 git代码版本管理 2 运行环境 192.168.1.241 内部开发运行环境 软件工程师 ...

随机推荐

  1. 奔跑吧DKY——团队Scrum冲刺阶段-Day 7

    今日完成任务 谭鑫:将人物图添加到游戏以及商店界面中,实现商店的选择换装功能 黄宇塘:制作人物图.背景图 赵晓海:阅读所有代码测试所有功能,美化部分界面 方艺雯:为商店界面及关于界面添加必要文字说明 ...

  2. b7

    组员:陈锦谋 过去两天完成了哪些任务: 细节最后完善 明日计划: 无 还剩下哪些任务: 无 有哪些困难: 暂无 有哪些收获和疑问: 无

  3. Leetcode题库——20.有效的括号

    @author: ZZQ @software: PyCharm @file: IsValid.py @time: 2018/9/16 20:20 要求: 给定一个只包括 '(',')','{','}' ...

  4. Mysql-外键foreign key

    1.定义:如果一张表中有一个字段指向另一张表的主键,就子表中将该主键字段叫做外键. 一张表中可存在多个外键 2.外键的作用 保持数据的一致性.完整性 a.对子表(外键所在的表)的作用:子表在进行写操作 ...

  5. mysql中字符串类型char(n)和varchar(n)的区别

    n的含义 根据网络上找到的结果(不能保证准确),在5.0.3以后版本中,n均代表字符数,而不是字节数:我用来测试的版本是5.7.20,该版本中,n表示字符数. 验证过程如下 建表 CREATE TAB ...

  6. 在tensorflow环境下安装matplotlib

    在运行程序时,报错ImportError: No module named 'matplotlib',如图.经网上查询发现是没有安装matplotlib 因此记录一下在tensorflow环境下安装m ...

  7. 【BZOJ2423】最长公共子序列(动态规划)

    [BZOJ2423]最长公共子序列(动态规划) 题面 BZOJ 洛谷 题解 今天考试的时候,神仙出题人\(fdf\)把这道题目作为一个二合一出了出来,我除了orz还是只会orz. 对于如何\(O(n^ ...

  8. 洛谷 3379 最近公共祖先(LCA 倍增)

    洛谷 3379 最近公共祖先(LCA 倍增) 题意分析 裸的板子题,但是注意这题n上限50w,我用的边表,所以要开到100w才能过,一开始re了两发,发现这个问题了. 代码总览 #include &l ...

  9. Android资源混淆 + 混淆忽略 .so库

    安装包立减1M--微信Android资源混淆打包工具http://mp.weixin.qq.com/s?__biz=MzAwNDY1ODY2OQ==&mid=208135658&idx ...

  10. bzoj 4521: [Cqoi2016]手机号码

    感觉get到了一种数位dp的新姿势,加一位表示当前要填的数有没有限制(感觉以前的写法都太蠢了). 这么写有两个地方要注意: 1.每dp到一位时需要f[i][初始状态]++,相当于这位前都是前导零(这道 ...