内容总括

  一. 初始化

    1. setUp 与 tearDown
    2. setUpClass 与 tearDownClass
    3. unittest.main(verbosity=0/1/2)

  二. 执行顺序

    1. 按顺序执行 addTest
    2. 按测试类执行,应用场景为:在一堆类里只想执行其中的一个类
    3. 按测试模块执行,一个py文件代表一个模块,应用场景为:批量执行

  三. 断言

  1. assertEqual(a,b)
  2. assertNotEqual(a,b)
  3. assertTrue(x)
  4. assertFalse(x)
  5. assertIs(a,b)
  6. assertIsNot(a,b)
  7. assertIsNone(x)
  8. assertIsNotNone(x)
  9. assertIn(a,b)
  10. assertNotIn(a,b)

  四. 报告

  五. 其他

    1. 分离初始化模块,即公共模块
    2. skip, skipIf
解析

1. setUp 与 tearDown

    • 有几个test,就执行几次setUp 与 tearDown,浪费资源

2. setUpClass 与 tearDownClass

    • 推荐使用,只初始化一次固件,要加 @classmethod
    •   class BaiDuTest(unittest.TestCase):
      @classmethod
      def setUpClass(cls):
      print("start...") @classmethod
      def tearDownClass(self):
      print("end...")
         if __name__ == '__main__':   
         unittest.main(verbosity=1)
 

3. unittest.main(verbosity=0/1/2)

    • 默认为1,0与1 几乎无差别,展示测试总个数与全局结果
    • 2 为详情展示

4 .按顺序执行 addTest

 import unittest

 class BaiDuTest(unittest.TestCase):
@classmethod
def setUpClass(cls):
print("start...") @classmethod
def tearDownClass(self):
print("end...")
def test_baidu(self):
print("baidu...")
def test_souhu(self):
print("souhu...") if __name__ == '__main__':
suit = unittest.TestSuite()
suit.addTest(BaiDuTest.test_souhu)
suit.addTest(BaiDuTest.test_baidu)
unittest.TextTestRunner(verbosity=2).run(suit)

5. 按测试类执行

 import unittest

 class BaiDuTest(unittest.TestCase):
@classmethod
def setUpClass(cls):
print("start...") @classmethod
def tearDownClass(self):
print("end...")
def test_baidu(self):
print("baidu...")
def test_souhu(self):
print("souhu...") class BaiDuTest2(unittest.TestCase):
@classmethod
def setUpClass(cls):
print("start2...") @classmethod
def tearDownClass(self):
print("end2...")
def test_baidu(self):
print("baidu2...") if __name__ == '__main__':
suit = unittest.TestSuite(unittest.makeSuite(BaiDuTest2))
unittest.TextTestRunner(verbosity=2).run(suit)
或者:

suit = unittest.TestLoader().loadTestsFromTestCase(BaiDuTest2)
unittest.TextTestRunner(verbosity=2).run(suit)

6. 按测试模块执行

 # -*- coding:utf-8 -*-
import unittest
import os class BaiDuTest(unittest.TestCase):
def test_baidu(self):
print("baidu...") if __name__ == '__main__':
# 定义测试集所在文件夹
path = os.path.dirname(__file__) # 当前执行路径
print(path)
# discover = unittest.defaultTestLoader.discover(path,pattern='test*.py') # 支持正则
discover = unittest.defaultTestLoader.discover(path,pattern='ttst.py')
runner = unittest.TextTestRunner(verbosity=2).run(discover)

7. 分离初始化模块

 class InitTest(unittest.TestCase):
@classmethod
def setUpClass(cls):
print("start...") @classmethod
def tearDownClass(self):
print("end...") class BaiDuTest(InitTest):
def test_baidu(self):
print("baidu...")

8. skip, skipIf

 class BaiDuTest(InitTest):
def test_baidu(self):
print("baidu...") @unittest.skip("skip TestCase")
def test_baidu2(self):
print("baidu2...") @unittest.skipIf(1!=1,"skip TestCase")
def test_baidu3(self):
print("baidu3...") if __name__ == '__main__':
unittest.main(verbosity=2)

9. 断言

  def test_baidu2(self):
self.assertEqual(1,'')
self.assertTrue(0)
self.assertFalse(0)
self.assertIn('www','http://www.b')

⚠️ 第二行代码错了,就不会执行执行第3,4,5行代码

最新文章

  1. ICMP的应用--Traceroute
  2. 【BZOJ2874】训练士兵(主席树)
  3. [MCSM]随机搜索和EM算法
  4. 设置button不同状态下的背景色,即把这个颜色变成图片设置成,背景图片
  5. CC150 - 11.5
  6. window Jconsole链接到CenOS 监控Tomcat
  7. pwn学习之dl_resolve学习篇
  8. CDZSC_2015寒假新人(1)——基础 d
  9. [问题]安装express,已经加了-g,还是找不到express命令
  10. 主java程序猿知识体系结构
  11. Android中的线程池
  12. docker修改默认存储位置
  13. Vue 指令篇 案例(输入提交显示 提交数据_列表)
  14. HihoCoder - 1801 :剪切字符串 (置换与逆序对)
  15. CGLIB介绍
  16. <header><footer>引用
  17. 修改ie11的默认搜索引擎和主页
  18. JS实现IE下打印和打印预览
  19. Asp.net Vnext 模块化实现
  20. C#-WebForm-LinQ(一)-LinQ:语言集成查询(Language Integrated Query)-增删改查、属性扩展

热门文章

  1. realpython教程之机器学习之Windows下的环境配置
  2. Linux安装redis logstash
  3. windows ping命令
  4. 创建Sqoop作业,报错Exception in thread "main" java.lang.NoClassDefFoundError: org/json/JSONObject
  5. P1541 乌龟棋(动态规划)
  6. 网站如何接入微信公众号JSAPI支付PHP版
  7. INPUT和CONSTRUCT指令——范例报表查询,作用让用户输入数据,自动生成SQL的WHERE条件,带开窗查询
  8. CentOS7-部署kubernetes
  9. Leetcode 杂题
  10. Java多线程(一):线程与进程