您的位置:首页 > 编程语言 > Python开发

python的unittest模块实现软件单元测试

2017-07-24 17:01 676 查看
#!/usr/bin/env python
#-*-coding:utf-8-*-
class Count(object):
version=1
def add(self,x,y):
return x+y
def sub(self,x,y):
return x-y

if __name__=='__main__':
c=Count()
print(c.add(1,2))
print(c.sub(10,5))
#!/usr/bin/env python
#-*-coding:utf-8-*-
#unittest

import unittest
from count import Count

class TestCount(unittest.TestCase):
def setUp(self):
print('setup')
self.obj=Count()
def tearDown(self):
print('tearDown')
self.obj=None
def add_test(self):
print('Run add_test')
print(self.obj.add(10,20)==30)
def sub_test(self):
print('Run sub_test')
print(self.obj.sub(10,5)==5)
#增加测试单元1
def get_suite():
case_list=['add_test','sub_test']
demo_countadd=TestCount('add_test')
demo_countsub=TestCount('sub_test')
demos=map(TestCount,case_list)
suite=unittest.TestSuite()
#suite.addTest(demo_countadd)
#suite.addTest(demo_countsub)
suite.addTest(demos)
return suite
#增加测试单元2
class CountTestSuite(unittest.TestSuite):
def __init__(self):
case_list=['add_test','sub_test']
unittest.TestSuite.__init__(self,map(TestCount,case_list))

if __name__=='__main__':
#s=get_suite()
s=CountTestSuite()
runner=unittest.TextTestRunner()
print(s.countTestCases())
runner.run(s)
#!/usr/bin/env python
#-*-coding:utf-8-*-
#unittest

import unittest
from count import Count

class TestCount(unittest.TestCase):
def setUp(self):
print('setup')
self.obj=Count()
def tearDown(self):
print('tearDown')
self.obj=None
def test_add(self):
print('Run add_test')
print(self.obj.add(10,20)==30)
def test_sub(self):
print('Run sub_test')
print(self.obj.sub(10,5)==5)
def test_sum(self):
print('Run sum_test')
pass
def priv_case1(self):
print('Run priv_case1')
pass

def get_suite():
suite=unittest.makeSuite(TestCount,prefix='test')
print(suite.countTestCases())
return suite

class CountTestSuite(unittest.TestSuite):
def __init__(self):
case_list=['add_test','sub_test']
unittest.TestSuite.__init__(self,map(TestCount,case_list))

if __name__=='__main__':
unittest.main()
'''
s=get_suite()
#s=CountTestSuite()
runner=unittest.TextTestRunner()
print(s.countTestCases())
runner.run(s)
'''
#!/usr/bin/env python
#-*-coding:utf-8-*-
#unittest

import unittest
from count import Count

class TestCount(unittest.TestCase):
def setUp(self):
# print('setup')
self.obj=Count()
def tearDown(self):
#print('tearDown')
self.obj=None
#装饰器跳过测试
@unittest.skip('Notest')
def test_add(self):
print('Run add_test')
self.assertEqual(self.obj.add(10,20),30)
#@unittest.skipIf(Count.version==1,'No test')
#产生异常装饰
@unittest.expectedFailure
def test_sub(self):
print('call sub test')
self.assertEqual(self.obj.sub(10,5),6)
@unittest.skipUnless(Count.version==1,'No test1')
def test_sum(self):
print('Run sum_test')
pass
def priv_case1(self):
#print('Run priv_case1')
pass
#对以test开头的单元测试
def get_suite():
suite=unittest.makeSuite(TestCount,prefix='test')
print(suite.countTestCases())

4000
return suite

class CountTestSuite(unittest.TestSuite):
def __init__(self):
case_list=['add_test','sub_test']
unittest.TestSuite.__init__(self,map(TestCount,case_list))

if __name__=='__main__':
unittest.main()
'''
s=get_suite()
#s=CountTestSuite()
runner=unittest.TextTestRunner()
print(s.countTestCases())
runner.run(s)
'''
#!/usr/bin/env python
#-*-coding:utf-8-*-
#统计一个文件夹里所有文件的个数,所有png,jpeg,file,dir的个数
import os
import imghdr
ftypes=['png','jpeg','file','dir']

class CountFiles(object):
def __init__(self,path='./'):
self.path=path
self.fkinds=dict([[val,0] for val in ftypes])#初始化字典
self.scandir()
#遍历文件夹
def scandir(self):
result=os.walk(self.path)
for info in result:
print(info)
top,dirs,files=info
self.fkinds['dir']+=len(dirs)
for f in files:
fpath=os.path.join(top,f)
ftype=imghdr.what(fpath)
if ftype==None:
ftype='file'
self.fkinds[ftype]+=1
#相应文件的个数
def getinfobykey(self,key):
return self.fkinds[key]
def cjpeg(self):
return self.getinfobykey('jpeg')
def cpng(self):
return self.getinfobykey('png')
def cfile(self):
return self.getinfobykey('file')
def cdir(self):
return self.getinfobykey('dir')
if __name__=='__main__':
c=CountFiles(path=r'/home/acm506/桌面/webshixun')
for key in ftypes:
print('%s:%s'%(key,c.getinfobykey(key)))

#!/usr/bin/env python
#-*-coding:utf-8-*-
#对统计目录的文件进行测试进行测试,
import unittest

from tongji import CountFiles
testdir=r'/home/acm506/桌面/webshixun/'
class TestGlinfo(unittest.TestCase):
def setUp(self):
self.obj=CountFiles(path=testdir)
def test_cjpeg(self):
self.assertEqual(self.obj.cjpeg(),21)
def test_cpng(self):
self.assertEqual(self.obj.cpng(),8)
def test_cfile(self):
self.assertEqual(self.obj.cfile(),14)
def test_cdir(self):
self.assertEqual(self.obj.cdir(),3)
def tearDown(self):
self.obj=None
if __name__=='__main__':
unittest.main()

#!/usr/bin/env python
#-*-coding:utf-8-*-
#mock测试
from unittest import mock
class CouldClient(object):
def connect(self):
pass
def disconnect(self):
pass
def upload(self):
pass
def download(self):
pass
tmock=mock.Mock(CouldClient)
print(dir(tmock))

tmock.connect.return_value=200
print(tmock.connect())
tmock.connect.return_value=404
print(tmock.connect())
#!/usr/bin/env python
#-*-coding:utf-8-*-
#对mock进行测试
import unittest
from unittest import mock
#导入待测试的单元
from mockclass import CouldClient
#测试单元
class TestCould(unittest.TestCase):
def setUp(self):
self.obj=mock.Mock(CouldClient)
def tearDown(self):
self.obj=None
def test_connect(self):
self.obj.connect.return_value=200
self.assertEqual(self.obj.connect(),404)
def test_disconnect(self):
pass
if  __name__=='__main__':
#自动化测试
unittest.main()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: