云社区 博客 博客详情

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

仙女本仙 发表于 2020-11-06 10:43:24 2020-11-06
0
1

【摘要】 基本使用步骤: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)



登录后可下载附件,请登录或者注册

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:huaweicloud.bbs@huawei.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
评论文章 //点赞 收藏 1
点赞
分享文章到微博
分享文章到朋友圈

上一篇:pycharm使用技巧之自动调整代码格式总结

下一篇:Python Unittest原理及基本使用方法(下)

评论 (0)


登录后可评论,请 登录注册

评论