Python Unittest原理及基本使用方法(上)
【摘要】 基本使用步骤:1、import unittest2、新建一个Class继承unittest.TestCase3、定义一个以test开头的函数作为测试用例【必须以test开头】4、执行测试用例前都会先调用Setup函数【每个测试用例调用一次】或者setupClass函数【所有测试用例仅调用一次】5、执行完测试用例后都会调用tearDown函数【多次】和tearDownClass函数【仅一次】P...
基本使用步骤:
1、import unittest
2、新建一个Class继承unittest.TestCase
3、定义一个以test开头的函数作为测试用例【必须以test开头】
4、执行测试用例前都会先调用Setup函数【每个测试用例调用一次】或者setupClass函数【所有测试用例仅调用一次】
5、执行完测试用例后都会调用tearDown函数【多次】和tearDownClass函数【仅一次】
PS:
1、不能重写init()
2、函数必须以test开头才能作为测试用例
3、setupClass()和tearDownClass()必须用@classmethod修饰
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# -*- encoding=utf-8 -*-
import unittest
class Demo1(unittest.TestCase):
def setUp( self ):
print '调用 setup 函数'
@classmethod
def setUpClass( cls ):
print '调用 setupClass 函数'
def tearDown( self ):
print '调用 tearDown 函数'
@classmethod
def tearDownClass( cls ):
print '调用 tearDownClass 函数'
@staticmethod
def test_add():
print '3 + 5 = {}' . format ( 3 + 5 )
@staticmethod
def test_sub():
print '3 - 5 = {}' . format ( 3 - 5 )
if __name__ = = '__main__' :
unittest.main()
|
运行结果
调用 setupClass 函数
调用 setup 函数
3 + 5 = 8
调用 tearDown 函数
调用 setup 函数
3 - 5 = -2
调用 tearDown 函数
调用 tearDownClass 函数
Ran 2 tests in 0.012s
OK
TestSuite【测试组】添加测试用例进行测试
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
# -*- encoding=utf-8 -*-
class Class1( object ):
def __init__( self ):
print '调用 Class1 初始化函数'
self .name = '未定义姓名'
self .age = '未定义年龄'
def set_name( self , name):
self .name = name
def set_age( self , age):
self .age = age
def print_name( self ):
print 'Class1 的姓名是:{}' . format ( self .name)
def print_age( self ):
print 'Class1 的年龄是:{}' . format ( self .age)
if __name__ = = '__main__' :
pass
# -*- encoding=utf-8 -*-
import unittest
from Class1 import Class1
class CallClass1(unittest.TestCase):
def setUp( self ):
self .class1 = Class1()
pass
def tearDown( self ):
self .class1 = None
pass
def test_set_name( self ):
self .class1.set_name( '设置了名字' )
self .class1.print_name()
def test_print_name( self ):
self .class1.print_name()
if __name__ = = '__main__' :
unittest.main()
# -*- encoding=utf-8 -*-
import unittest
from Test_Demo2 import CallClass1
if __name__ = = '__main__' :
testSuite = unittest.TestSuite()
testSuite.addTest(CallClass1( 'test_set_name' ))
testSuite.addTests(
[CallClass1( 'test_set_name' ), CallClass1( 'test_print_name' )])
textTestRunner = unittest.TextTestRunner()
textTestRunner.run(testSuite)
|
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)