前言

  • 使用了unittest.main()方法执行当前模块里的测试用例。
  • 除此之外,Unittest还可以通过测试套件构造测试用例集,再执行测试用例

将测试用例添加至TestSuite(测试套件)

方式一:加载测试用例

  • 先通过unittest.TestSuite() 创建测试套件实例对象,如:suite = unittest.TestSuite()
  • 再通过addTest() 往测试套件里添加单个测试用例,或通过addTests([…]) 添加多个测试用例(列表中为用例方法名)
  • 执行测试套件里的测试用例
    - 问题?如果有多个用例,如果类里100个用例?要添加100次?
# -*- coding: utf-8 -*-
# @Author : 微信公众号:程序员一凡 import unittest class TestHC(unittest.TestCase): def test01(self):
print("用例1") def test02(self):
print("用例2") if __name__ == '__main__': """方式1添加单条用例"""
# 创建suite实例
suite = unittest.TestSuite()
# 添加单条测试用例
suite.addTest(TestHC("test02")) **# addTest()里参数格式为:测试类('测试方法')**
suite.addTest(TestHC("test01")) """方式2添加多条用例"""
# suite.addTests([TestHC('test02'), TestHC('test01')])

  

方式二:加载测试用例类

  • 先通过unittest.TestSuite() 创建测试套件实例对象。
  • 再通过unittest.TestLoader()创建加载对象,加载测试用例类
# -*- coding: utf-8 -*-
# @Author : 微信公众号:程序员一凡 import unittest class TestHC(unittest.TestCase): def test01(self):
print("用例1") def test02(self):
print("用例2") class Test_Action(unittest.TestCase):
def test03(self):
print("用例3") def test04(self):
print("用例4") if __name__ == '__main__': """方式1添加单条用例"""
# 创建suite实例
suite = unittest.TestSuite()
loader = unittest.TestLoader()
suite.addTest(loader.loadTestsFromTestCase(TestHC))
suite.addTest(loader.loadTestsFromTestCase(Test_Action)) """
添加多个类的方法
suite1 = unittest.TestLoader().loadTestsFromTestCase(TestHC)
suite2 = unittest.TestLoader().loadTestsFromTestCase(Test_Action)
suite = unittest.TestSuite([suite1, suite2])
"""

  

方法三:加载指定路径里的测试用例

  • 通过unittest.defaultTestLoader.discover()将指定路径的测试用例加载至测试用例集。注意:这里不需要创建unittest.TestSuite对象
  • 如下代码所示,test_dir为指定路径。pattern=test_*.py 表示加载以test_开头的模块中的测试用例,指定运行某模块时pattern参数指定全名即可,如:pattern=‘test_sum.py’。路径跟pattern参数都可以自定义
import unittest

# discover可以一次调用多个脚本
# test_dir 被测试脚本的路径
# pattern 脚本名称匹配规则 test_dir = "./test_case"
discover = unittest.defaultTestLoader.discover(test_dir, pattern="test*.py") # 匹配test_case目录下所有以test开头的py文件,执行这些py文件下的所有测试用例
if __name__ == "__main__":
runner=unittest.TextTestRunner()
runner.run(discover)

  

使用TextTestRunner执行测试用例

  • unittest框架执行测试用例之前,需先创建TextTestRunner实例,
  • 再调用该实例的run()方法
# 创建TextTestRunner实例
runner = unittest.TextTestRunner()
# 使用run()方法运行测试套件(即运行测试套件中的所有用例)
runner.run(suite)

  

Unittest框架之测试套件:TestSuite的更多相关文章

  1. unittest如何制作测试套件Testsuite 按method,class ,module,按命令行执行unittest

    cmd 执行unittest case : python -m unitest test.py  test2.py python -m unittest  testfile.testclass.tes ...

  2. unittest单元测试框架之测试套件(三)

    1.测试套件(注意:测试用例先添加先执行,后添加后执行,由此组织与设定测试用例的执行顺序) addTests:添加多个测试用例 addTest:添加单个测试用例 import unittest fro ...

  3. Unittest 框架之测试固件-----(setUp与tearDown)你真的会用吗?

    前言 做自动化测试中,需要管理大量的测试用例,如果不用框架管理用例,那会是一件很麻烦的事. 如果所示只写了一个用例,内容就是输入网易邮箱账号和密码 test fixture:测试固件 简单来说就是做一 ...

  4. soapUI 在多个测试套件 testsuite 里,多个testcase里传值如何实现

        1.首先 要添加一个全局 自定义变量 Custom Properties   2.用transfer property 将取来的值 放入到变量 getToken 里   3.在另一个testc ...

  5. 『心善渊』Selenium3.0基础 — 28、unittest中测试套件的使用

    目录 1.测试套件的作用 2.使用测试套件 (1)入门示例 (2)根据不同的条件加载测试用例(了解) (3)常用方式(推荐) 1.测试套件的作用 在我们实际工作,使用unittest框架会有两个问题: ...

  6. selenium + python自动化测试unittest框架学习(二)

    1.unittest单元测试框架文件结构 unittest是python单元测试框架之一,unittest测试框架的主要文件结构: File >report >all_case.py &g ...

  7. Python接口测试之unittest框架(五)

    Test-driven development(TDD)开发模式在今天已经不是什么新奇的事了,它的开发思维是在开发一个产品功能的时候,先 编写好该功能的测试代码,在编写开发比如,比如要写二个数相除的函 ...

  8. Unittest框架的从零到壹(二)

    四大重要概念 在unittest文档中有四个重要的概念:Test Case.Test Suite.Test Runner和Test Fixture.只有理解了这几个概念,才能理解单元测试的基本特征. ...

  9. unittest_TestSuite测试套件(2)

    在前面一章中演示了unittest如何执行一个简单的测试,但有两个问题: 我们知道测试用例的执行顺序是根据测试用例名称顺序执行的,在不改变用例名称的情况下,我们怎么来控制用例执行的顺序呢? 一个测试文 ...

随机推荐

  1. imagemagick 之 Fred's ImageMagick Scripts 在Ubuntu 下的实践

    Fred's ImageMagick Scripts 官网:http://www.fmwconcepts.com/imagemagick/index.php Windows 10 (64-bit) u ...

  2. WinForm的Socket实现简单的聊天室 IM

    1:什么是Socket 所谓套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象. 一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制. 从 ...

  3. 数据库期末作业之银行ATM存取款机系统

    --一.建库.建表.建约束 --1.使用SQL创建表 --客户信息表userinfo --字段名称 说明 备注 --customerID 顾客编号 自动编号(标识列),从1开始,主键 --用序列seq ...

  4. 认清 React 的useState逻辑

    useState运行过程解析 function App() { const [n, setN] = useState(0); //使用 myUseState() return ( <div> ...

  5. 高仿京东到家APP引导页炫酷动画效果

    前言 京东到家APP的引导页做的可圈可点,插画+动效,简明生动地说明了APP最吸引用户的几个亮点(商品多,价格低,配送快...).本文主要分析拆解这些动画效果,并完成一个高仿Demo,完整的Demo代 ...

  6. Python信息搜集

    1.IP查询 IP查询是通过当前所获取到的URL去查询对应IP地址的过程.可以应用socket库函数中的gethostbuname()获取域名所对应的IP值,代码如下: 查询域名www.biadu.c ...

  7. ss 命令简介

    1. 简介 ss 使用 netlink 与内核 tcp_diag 模块通信获取 socket 信息,用法和输出结果类似于 netstat 命令 语法格式如下 ss [options] [ FILTER ...

  8. Java生鲜电商平台-API接口设计之token、timestamp、sign 具体架构与实现(APP/小程序,传输安全)

    Java生鲜电商平台-API接口设计之token.timestamp.sign 具体设计与实现 说明:在实际的业务中,难免会跟第三方系统进行数据的交互与传递,那么如何保证数据在传输过程中的安全呢(防窃 ...

  9. Dynamics CRM分享记录后出现关联记录被共享的问题

    Dynamics CRM的权限配置有许多的问题,其中分享功能也是未来解决标准功能分配的权限不满足需求而设计的.但是这个功能使用的时候也要注意,否则会出现其他记录被共享的问题导致数据泄露可能会对项目的安 ...

  10. Unity 渲染流水线 :CPU与GPU合作创造的艺术wfd

    前言 对于Unity渲染流程的理解可以帮助我们更好对Unity场景进行性能消耗的分析,进而更好的提升场景渲染的效率,最后提升游戏整体的性能表现 Unity的游戏画面的最终的呈现是由CPU与GPU相互配 ...