Unittest加载测试用例居然没有标签功能,怪我咯?那我自己封装一个,那都不是事!

需求分析

  • 假设当前4条用例,需要执行test02和test04用例,那么可以通过测试套件的方式去实现这个需求
  • 如果当前有100条用例,只需执行其中某些用例。怎么办呢?
#! /usr/bin/python3
# -*- coding:utf-8 -*-
# @公众号  : 码上开始

import unittest

class TestCase(unittest.TestCase):

    def test01(self):
        print("执行第1条用例")

    def test02(self):
        print("执行第2条用例")

    def test03(self):
        print("执行第3条用例")

    def test04(self):
        print("执行第4条用例")

解决思路

给用例打标签,只运行某些具有标签的用例
unittest没有标签功能

  1. 在测试方法后面加标签的名称
  2. 获取该类所有定义的方法名(即以test开头的用例)
  3. add动态添加用例

封装代码

#! /usr/bin/python3
# -*- coding:utf-8 -*-

# @FileName: day5.py
# @Time    : 2020/8/9 20:57
# @公众号  : 码上开始

import unittest

class TestCase(unittest.TestCase):

    def test01(self):
        print("执行第1条用例")

    def test02_smoke(self):
        print("执行第2条用例")

    def test03(self):
        print("执行第3条用例")

    def test04_smoke(self):
        print("执行第4条用例")
if __name__ == "__main__":
    # 测试套件
    testcases = unittest.TestSuite()
    list_case = [ ]
    for case in dir(TestCase):
        # endswith如果方法名以smoke结尾添加到用例
        if case.endswith("smoke") and case.startswith("test"):
            list_case.append(case)
    # 只有符合条件的才会加到用列表里
    # print(list_case)
    # 列表的用例然后加到套件
    for smoke in list_case:
        testcases.addTest(TestCase(smoke))
    # 最后执行用例
    runner = unittest.TextTestRunner().run(testcases)

运行结果

执行第2条用例
执行第4条用例
..
----------------------------------------------------------------------
Ran 2 tests in 0.000s
OK

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码上开始

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值