@author: lianying'''classSparking:
@staticmethod
def get_num_of_zero(bits_num, key):
cnt=0whilekey:
cnt+=1key&= key -1returnbits_num -cnt
@staticmethod
def get_num_of_one(bits_num, key):
cnt=0whilekey:
cnt+=1key&= key -1returncnt
def main():
s=Sparking()
s.get_num_of_zero(32,5)if__name__ =='__main__':
main()
'''@author: allen'''import pytestfromsparking.sparking import SparkingclassTestSparking(object):
@pytest.mark.parametrize("bits_num, key, expected",[
(8,5,2),
(16,5,2),
(32,5,2),
(64,5,2)
])
def test_get_num_of_one(self, bits_num, key, expected):
assert Sparking.get_num_of_one(bits_num, key)==expected
@pytest.mark.parametrize("bits_num, key, expected",[
(8,5,6),
(16,5,14),
(32,5,30),
(64,5,62)
])
def test_get_num_of_zero(self, bits_num, key, expected):
assert Sparking.get_num_of_zero(bits_num, key)== expected
代码上次svn,然后配置jenkins;jenkins的安装就不介绍了,网上一搜一大片;jenkins里先安装好Cobertura Plugin插件,用来显示代码覆盖率的
Started by user anonymous
Building on masterinworkspace C:\Users\lianying\.jenkins\jobs\test_django\workspace
Updating svn://10.134.28.113/project/sparking at revision '2016-06-08T13:54:59.004 +0800'U tests\test_sparking.py
At revision28[workspace] $ cmd/c call D:\Dev\tomcat\temp\hudson4704689285977025139.bat
C:\Users\lianying\.jenkins\jobs\test_django\workspace>py.test tests\test_sparking.py --junitxml=pytest_result.xml --cov=sparking --cov-report=xml============================= test session starts =============================platform. win32-- Python2.7.0, pytest-2.9.2, py-1.4.31, pluggy-0.3.1rootdir: C:\Users\lianying\.jenkins\jobs\test_django\workspace, inifile:
plugins: cov-2.2.1, html-1.8.1collected8items
tests\test_sparking.py ........
generated xml file: C:\Users\lianying\.jenkins\jobs\test_django\workspace\pytest_result.xml--------------- coverage: platform. win32, python2.7.0-final-0----------------Coverage XML written to file coverage.xml==========================8passedin0.11seconds ===========================C:\Users\lianying\.jenkins\jobs\test_django\workspace>exit0[Cobertura] Publishing Cobertura coverage report...
Publishing Cobertura coverage results...
Cobertura coverage report found.
Recording test results
Finished: SUCCESS
pip freeze > ./requirements.txtif[ ! -d"venv"]; then
virtualenv-p /usr/bin/python venv
fi
. venv/bin/activate
pip install-r requirements.txt
cd sparking
py.test tests/test_sparking.py --html=pytest_result.html --cov=sparking --cov-report=xml