Openstack 单元测试

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

1.执行测试

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

./run_tests.sh

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

Usage: ./run_tests.sh [OPTION]...
Run Nova's test suite(s)

  -V, --virtual-env        Always use virtualenv.  Install automatically if not present
  -N, --no-virtual-env     Don't use virtualenv.  Run tests in local environment
  -s, --no-site-packages   Isolate the virtualenv from the global Python environment
  -r, --recreate-db        Recreate the test database (deprecated, as this is now the default).
  -n, --no-recreate-db     Don't recreate the test database.
  -x, --stop               Stop running tests after the first error or failure.
  -f, --force              Force a clean re-build of the virtual environment. Useful when dependencies have been added.
  -p, --pep8               Just run pep8
  -P, --no-pep8            Don't run pep8
  -c, --coverage           Generate coverage report
  -h, --help               Print this usage message
  --hide-elapsed           Don't print the elapsed time for each test along with slow test list

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

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

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

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

./run_tests.sh test_libvirt:HostStateTestCase

#对libvirt模块中的HostStateTestCase类做测试

./run_tests.sh test_utils:ToPrimitiveTestCase.test_dict

#对ToPrimitiveTestCase.test_dict方法做测试

2.控制输出

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

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

--nologcapture

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

 

转载于:https://my.oschina.net/zyzzy/blog/71281

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值