Python Unittest原理及基本使用方法(上)

举报
泽宇-Li 发表于 2020/11/06 10:43:24 2020/11/06
【摘要】 基本使用步骤: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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。