该文转载自:Python Unittest 自动化单元测试框架Demo
1.unittest简单的domo
# coding:utf-8
import unittest
class MyTestCase(unittest.TestCase):
# 测试用例前执行
def setUp(self):
pass
# 测试用例后执行
def tearDown(self):
pass
# 测试用例1
def test_Case1(self):
print 'Case1'
if __name__=='__main__':
unitest.main()
2.使用suite来管理多个case
# coding:utf-8
import unittest
class MyTestCase(unittest.TestCase):
# 测试用例前执行
def setUp(self):
pass
# 测试用例后执行
def tearDown(self):
pass
# 测试用例1
def test_Case1(self):
print 'Case1'
# 测试用例2
def test_Case2(self):
print 'Case2'
def suite_test1():
# 构造测试集
suite = unittest.TestSuite()
# 添加Case
suite.addTest(MyTestCase('test_Case1'))
suite.addTest(MyTestCase('test_Case2'))
return suite
if __name__=='__main__':
unittest.main(defaultTest='suite_test1')
3.Suite和case可以分开写在不同的python文件中,这样方便管理case和suite;在测试时若更改了case只需要对相对应的suite进行修改即可
case模块:
# TestCase_Domo.py
# coding:utf-8
import unittest
class MyTestCase(unittest.TestCase):
# 测试用例前执行
def setUp(self):
pass
# 测试用例后执行
def tearDown(self):
pass
# 测试用例1
def test_Case1(self):
print 'Case1'
# 测试用例2
def test_Case2(self):
print 'Case2'
# 测试用例3
def test_Case3(self):
print 'Case3'
# 测试用例4
def test_Case4(self):
print 'test_Case4'
suite模块:
#TestSuite_Domo.py
# coding:utf-8
import unittest
from TestCase_Domo import MyTestCase
def Test_Suite():
# 构建测试集并添加Case
suite = unittest.TestSuite()
suite.addTest(MyTestCase('test_Case1'))
suite.addTest(MyTestCase('test_Case2'))
suite.addTest(MyTestCase('test_Case3'))
suite.addTest(MytestCase('test_Case4'))
return suite
if __name__=='__main__':
# 启动指定的测试集
runner = unittest.TextTestRunner()
runner.run(Test_Suite())
可以把不同的case添加到不同的suite,可以给添加的suite进行分组,且suite还可以包含suite
# TestSuite_Domo2.py
# coding:utf-8
import unittest
from TestCase_Domo import MyTestCase
def Test_Suite1():
suite = unittest.TestSuite()
suite.addTest(MyTestCase('test_Case1'))
suite.addTest(MyTestCase('test_Case2'))
return suite
def Test_Suite2():
suite = unittest.TestSuite()
suite.addTest(MyTestCase('test_Case3'))
suite.addTest(MyTestCase('test_Case4'))
return suite
def All_Suite():
all_suite = unittest.TestSuite((Test1(),Test2()))
return all_suite
if __name__ =='__main__':
runner = unittest.TextTestRunner()
runner.run(Test_Suite2())