aiven'blog

openstack开发中单元测试调试方法

在对openstack的组件进行开发时,尤其是要贡献社区时,单元测试是必须要编写的,openstack的每个模块基本都大同小异,下面就以zaqar作为例子来说明如何调试。

zaqar的代码拷贝或者clone到运行单元测试的服务器上,运行测试时会自动在zaqar目录下创建.tox文件夹,并且安装依赖。

1
git clone https://github.com/openstack/zaqar.git

注意:这几个文件比较重要,执行单元测试时会用到:.testr.conf .coveragerc .git

执行单元测试时需要保证本地具有mongo或者redis服务,并且为单节点没有认证。

执行单元测试命令

1
2
cd zaqar
tox -e py27,pep8 > test.log

或者

1
2
cd zaqar
tox -e integration > test.log

如果自己需要添加或者修改单元测试,可以通过print打印调试:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class ClaimControllerTest(ControllerBaseTest):
...
def test_delay_queue(self):
meta = {'ttl': 1, 'grace': 0}
# Set delay queeu metadata
metadata = {"_delay_ttl": 5}
self.queue_controller.set_metadata(self.queue_name,
metadata,
project=self.project)
queue_delay = self.queue_controller.get_metadata(self.queue_name,
project=self.project)
queue_delay_ttl = queue_delay.get('_delay_ttl')
print queue_delay_ttl
...

之后继续执行前面的命令,然后在test.log中可以看到输出

热评文章