unittest执行测试用例有哪几种方式?我整理好几种呢

Wesley13
• 阅读 683

前言

 在我们实际工作当中,我们经常会用到unittest框架来执行用例,进行冒烟测试。如果你不懂冒烟测试,传送门链接:unittest和pytest冒烟测试哪家强?

通过unittest.main()来执行测试用例的方式:

import unittest 
 
class UCTestCase(unittest.TestCase):
    def setUp(self):
        #测试前需执行的操作
        .....
    def tearDown(self):
        #测试用例执行完后所需执行的操作
     
    # 测试用例1
    def test1(self):
        #具体的测试脚本
      
    # 测试用例2
    def test2(self):
        #具体的测试脚本
       
if __name__ == "__main__":
    # 运行所有的用例
    unittest.main()

如果觉的对你有帮助,欢迎加入到902061117,群内会有不定期的分享测试资料。还会有技术大牛,业内同行一起交流技术

通过testsuit来执行测试用例的方式:

如果想只想运用某一个用例呢?怎么办?使用套件然后传入测试用例的方法名即可,看实例

import unittest 

# 执行测试的类
class UCTestCase(unittest.TestCase):
    def setUp(self):
        #测试前需执行的操作
      
    def tearDown(self):
        #测试用例执行完后所需执行的操作
     
    # 测试用例1
    def test1(self):
        #具体的测试脚本
      
    # 测试用例2
    def test2(self):
        #具体的测试脚本
       
if __name__ == "__main__":
    # 构造测试集
    suite = unittest.TestSuite()
    suite.addTest(UCTestCase("test1"))
    suite.addTest(UCTestCase("test2"))
    # 执行测试
    runner = unittest.TextTestRunner()
    runner.run(suite)

通过testLoader方式:

如果有多个类的情况下,我想运行某个类下面的测试用例呢?通过testLoader

import unittest

class TestCase1(unittest.TestCase):
    def testCase1(self):
    print("a")
    def testCase2(self):
    print("b")
 

class TestCase2(unittest.TestCase):
    def testCase1(self):
        print("a1")
    def testCase2(self):
        print("b1")
 
if __name__ == "__main__":
    #此用法可以同时测试多个类
    suite1 = unittest.TestLoader().loadTestsFromTestCase(TestCase1)
    suite2 = unittest.TestLoader().loadTestsFromTestCase(TestCase2)
    suite = unittest.TestSuite([suite1, suite2])

通过discover方式加载某路径下的所有测试用例

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)

如果对软件测试、接口测试、自动化测试、持续集成、面试经验。感兴趣可以进到902061117,群内会有不定期的分享测试资料。还会有技术大牛,业内同行一起交流技术

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Python接口自动化实战(第二阶段)
1.unitttest简介为什么要使用unittest?前面我们已经写代码实现了注册接口的处理调用,但是一个接口往往需要多条测试用例才能完整的覆盖到每一种情况,针对于单接口多条测试用例需要执行的情况,我们该如何处理呢?在unittest的测试类中定义多个测试方法来完成测试,这可能是大家最先想到的一个解决方法,
Stella981 Stella981
3年前
OpenStack基础知识
针对以前学的内容的一个简单整理1、单元测试工具介绍unittest:是Python的标准库,提供了最基本的单元测试功能,包括单元测试运行器(简称runner)和单元测试框架。项目的单元测试代码的测试类可以继承unittest.TestCase类,那么这个类就能够被runner发现并且执行。同时,unittest.TestCase
Stella981 Stella981
3年前
Cypress学习15
前言Cypress提供了hooks函数,方便我们在组织测试用例的时候,设置用例的前置操作和后置清理。类似于python的unittest里面的setUp和setUpclass功能HooksCypress提供了hooks函数。这些有助于设置要在一组测试之前或每个测试之前运行的条件。它们也
Stella981 Stella981
3年前
Android蓝牙连接汽车OBD设备
//设备连接public class BluetoothConnect implements Runnable {    private static final UUID CONNECT_UUID  UUID.fromString("0000110100001000800000805F9B34FB");
Wesley13 Wesley13
3年前
Java将List中的实体按照某个字段进行分组的算法
publicvoidtest(){List<UserlistnewArrayList<();//User实体测试用Stringid,name;//当前测试以id来分组,具体请按开发场景修改list.add(newUse
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这