单元测试的加载方式有2种:一种是通过unittest.main()来启动单元测试的测试模块;一种是添加到testsuite集合中再加载所有的被测试对象,而testsuit里存放的就是单元测试的用例。
一、测试模块中的函数
被测模块
#!/usr/bin/env python2.7.9
# -*- coding: utf-8 -*-
"""
__title__ = ''
__author__ = 'Administrator'
__mtime__ = '15-6-26'
"""
def sum(x,y):
return x+y
def sub(x,y):
return x-y
单元测试模块:
#!/usr/bin/env python2.7.9
# -*- coding: utf-8 -*-
__author__ = 'lan'
import unittest
from testing.test_unittest import mytest01
class MyTestCase(unittest.TestCase):
def setUp(self):
print"-----开始------"
def tearDown(self):
print "------结束-----"
def test_sum(self):
self.assertEqual(mytest01.sum(1,2),3,"sum test fail")
print "sum ss"
print "*"*20
""""
def test_sub(self):
self.assertEqual(mytest01.sub(3,2),1,"sub test fail")
print "sub ss"
print "*"*20
"""
if __name__ == '__main__':
unittest.main()
运行结果:
二、测试模块类中的函数
被测模块:
#!/usr/bin/env python2.7.9
# -*- coding: utf-8 -*-
"""
__title__ = ''
__author__ = 'Administrator'
__mtime__ = '15-6-26'
"""
class myclass:
def __init__(self):
pass
def sum(self,x,y):
return x+y
def sub(self,x,y):
return x-y
单元测试模块:
#!/usr/bin/env python2.7.9
# -*- coding: utf-8 -*-
__author__ = 'lan'
import unittest
from testing.test_unittest import testclass001
class MyTestCase(unittest.TestCase):
#初始化工作
def setUp(self):
self.tclass = testclass001.myclass()#实例化被测试模块中的类
#退出清理工作
def tearDown(self):
pass
#测试方法,以test开头
def test_sum(self):
self.assertEqual(self.tclass.sum(1,2),4,"sum test fail..")
def test_sub(self):
self.assertEqual(self.tclass.sub(2,1),2,"sub test fail")
if __name__ == '__main__':
unittest.main()
运行结果:
**这种方式执行单个测试文件时使用-v参数可以获得更多的测试结果信息。如:mytest.py -v
本文参考:http://blog.csdn.net/five3/article/details/7104466