ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

unittest2框架的使用

2022-01-28 22:31:34  阅读:216  来源: 互联网

标签:框架 tearDown setUp 使用 test 方法 unittest2 def


unittest2是python自带的一个单元测试框架。基本流程如下:

  1. 所以第一步我们直接导入unittest2包即可:import unittest2
  2. 创建一个类并继承unittest2代码库中的TestCase类,表示我们当前的类是一个测试用例类:class unittest2Demo(unittest2.TestCase)
  3. 声明一个以test开头的方法:def test_login(self):
    • 以test开头表示这个方法是一个测试用例方法,该方法可以直接运行
    • 普通的方法就不能直接运行,只有被调用才会执行
  4. 重写父类中的两个方法:
    • setUp(): 在每条测试用例方法开始之前,要做的预置条件。
    • tearDown(): 在每条测试用例方法结束后,要做的场景还原。
  5. 重写父类中的两个方法:
    • setUpClass(): 在类中所有方法开始之前,要做的预置条件
    • tearDownClass(): 在类中所有方法之后,要做的场景还原工作。
    • 需要在方法上面添加装饰器@classmethod
  6. 在最后添加main方法:
    • if__name__=='__main__': 
      • 如果在当前文件中右键运行,才会执行下面的语句
      • 如果在其他文件中右键运行,下面的语句不能被调用和执行
    • 调用unittest2.main()方法:表示调用unittest2的主方法,这样就会执行当前类中的所有方法。
  7. Note: 
    • 根据光标位置的不同,可以选择执行不同的测试用例。
    • 测试用例的执行顺序取决于字母的排列顺序a-z

代码举例如下:

 1 # unittest2是一个单元测试框架,接下来学习如何使用这个框架
 2 # 导入包
 3 import unittest2
 4 
 5 # 创建类,并继承代码库中的TestCase,表示当前类是测试用例类
 6 class Unittest2Demo(unittest2.TestCase):
 7     def test_login(self):
 8         print("登录")
 9         self.func()
10 
11     def func(self):
12         print("不以test开头的普通方法")
13 
14     def test_register(self):
15         print("注册")
16 
17     def test_aaa(self):
18         print("测试字母排列顺序")
19 
20     def setUp(self):
21         print("setUp")
22 
23     def tearDown(self):
24         print("tearDown")
25 
26     @classmethod
27     def setUpClass(cls):
28         print("setUpClass")
29         
30     @classmethod
31     def tearDownClass(cls):
32         print("tearDownClass")
33 
34 if __name__ == '__main__':
35     unittest2.main()

将光标放在main方法那一行,运行结果如下:

 1 setUpClass
 2 setUp
 3 测试字母排列顺序
 4 tearDown
 5 setUp
 6 登录
 7 不以test开头的普通方法
 8 tearDown
 9 setUp
10 注册
11 tearDown
12 tearDownClass
13 
14 
15 Ran 3 tests in 0.007s
16 
17 OK
18 
19 Process finished with exit code 0

 分析结果:

  1. 一共创建了三个以test开头的测试方法以及一个普通方法,在直接调用的时候只有测试方法被调用。
  2. 以a开头的case被优先执行
  3. 每个case都会执行一遍setUp和tearDown。
  4. 在类中全部case开始和结束的时候执行setUpClass和tearDownClass.
  5. 调用setUp和tearDown,setUpClass和tearDownClass的时候和书写位置无关,只要声明就会在每个case调用之前执行。

进阶:

  1. 创建一个父类BaseTestCase, 实现setUp和tearDown,setUpClass和setUpClass和tearDownClass方法
  2. 以后的测试用例继承这个父类,继承父类,就继承了父类的所有方法,就不需要再每个用例都重新写方法了。

标签:框架,tearDown,setUp,使用,test,方法,unittest2,def
来源: https://www.cnblogs.com/jiaming1996/p/15851766.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有