Openstack 单元测试

这篇文章介绍的是在Openstack nova开发过程中如何进行单元测试,在nova的开发环境搭建好之后(环境搭建可参考上一篇博文),如果对源码进行了修改,就应该做单元测试,本篇文章基本上是对官方文档的翻译,仅对关键步骤稍作介绍,相关的资料后面列举。

1.执行测试

    上一篇文章中已经介绍过单元测试的方法,执行测试脚本:

./run_tests.sh

这样会对整个nova工程进行一次测试,会花不少时间。这个脚本里封装了nose测试框架的用法,关于nose可以自己搜索相关资源,也可以到这里了解。这个脚本支持许多不同的参数以获得相应的信息,具体参数如下:

1Usage: ./run_tests.sh [OPTION]... 2Run Nova's test suite(s) 3 4 -V, --virtual-env Always use virtualenv. Install automatically if not present 5 -N, --no-virtual-env Don't use virtualenv. Run tests in local environment 6 -s, --no-site-packages Isolate the virtualenv from the global Python environment 7 -r, --recreate-db Recreate the test database (deprecated, as this is now the default). 8 -n, --no-recreate-db Don't recreate the test database. 9 -x, --stop Stop running tests after the first error or failure. 10 -f, --force Force a clean re-build of the virtual environment. Useful when dependencies have been added. 11 -p, --pep8 Just run pep8 12 -P, --no-pep8 Don't run pep8 13 -c, --coverage Generate coverage report 14 -h, --help Print this usage message 15 --hide-elapsed Don't print the elapsed time for each test along with slow test list

想了解更多关于参数的信息,点击这里

上面是对整个工程的测试,如果仅想对某个模块或功能做测试的话,可以运行相应的测试子集:

1./run_tests.sh scheduler 2#测试 nova/tests/scheduler

上面的代码是对nova调度器模块做的测试,也可以对模块中的具体类或方法做测试,如下:

1./run_tests.sh test_libvirt:HostStateTestCase 2 3#对libvirt模块中的HostStateTestCase类做测试 4 5./run_tests.sh test_utils:ToPrimitiveTestCase.test_dict 6 7#对ToPrimitiveTestCase.test_dict方法做测试

2.控制输出

    默认情况下,执行测试之后,会在控制台输出大量的测试信息,在这些输出中找到想要的结果还是比较困难的,即便是

重定向到文件中,依然不是很方便,这样就需要控制测试的输出结果。在执行测试的时候添加一个参数就可以:

--nologcapture

暂时先写到这里,这里是官方指导

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )