提交BP的代码,需要提供相应的测试用例
安装pep8
pip install pep8
带源码的检查
pep8 --show-source --show-pep8 testsuite/E40.py
只显示错误的检查
pep8 --statistics -qq Python-2.5/Lib
如直接使用pep8检查
pep8 --statistics /opt/stack/nova/nova/api/openstack/compute/contrib/fixed_ips.py
也可以使用run_tests来检查,如果文件是py,则是在做pep8检查
./run_tests.sh /opt/stack/nova/nova/tests/api/openstack/compute/contrib/test_hosts.py
nosetests用法
http://nose.readthedocs.org/en/latest/usage.html#options
测试某个类
nosetests /opt/stack/nova/nova/tests/api/openstack/compute/contrib/test_flavor_manage.py:FlavorManageTest
测试整个文件
nosetests /opt/stack/nova/nova/tests/virt/libvirt/test_libvirt.py
初次执行用例的时候,报如下错误,执行pip install mock安装后,用例可执行。
ERROR: Failure: ImportError (No module named mock)
File "/opt/stack/nova/nova/tests/objects/test_objects.py", line 19, in <module>
import mock
跑test_server_start_stop.py这个用例,5个用例报
AttributeError: 'pysqlite2.dbapi2.Connection' object has no attribute 'iterdump'
[root@devstack]# rpm -qa |grep sqlite
sqlite-3.6.20-1.el6.x86_64
python-sqlite2-2.3.5-2.el6.x86_64
iterdump是在sqlite python version 2.6.才有的,参考
http://docs.python.org/2/library/sqlite3.html
从https://pypi.python.org/pypi/pysqlite下载
需要补充安装yum install sqlite-devel,才能编译python setup.py install