• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

[pytest]测试类引入__init__(self)方法问题,有坑莫入

武飞扬头像
魔都吴所谓
帮助2

问题展示

在使用pytest做一些测试的时候,如果惯性思维采用了__init__(self)初始化的方法,这就给自己挖了一个坑,在使用pytest最好不要碰__init__(self)方法,
demo code:

class TestApi:
    def __init__(self):
        print('init')

    def test_login(self):
        print('login test')

运行之后,Termial出现黄色提示,并且没有找到case,这里我们看下报错类型:

================================== test session starts ==================================
platform win32 -- Python 3.7.0, pytest-6.2.3, py-1.10.0, pluggy-0.13.1
rootdir: D:\python\office_txt\DemoTest
plugins: allure-pytest-2.9.43, arraydiff-0.2, doctestplus-0.1.3, openfiles-0.3.0, remotedata-0.3.3
collected 0 items  
================================== warnings summary ===================================
test_1.py:10
  D:\python\office_txt\DemoTest\test_1.py:10: PytestCollectionWarning: cannot collect test class 'TestApi' because
it has a __init__ constructor (from: test_1.py)
    class TestApi:

-- Docs: https://docs.pytest.org/en/stable/warnings.html
================================= 1 warning in 0.10s ====================================

日志解读

log中有标志:collected 0 items 并没有找到我们的case
提示上说:
it has a __init__ constructor
就是这个初始化构造器导致的,所以避免踩坑,不要在code中使用初始化;
学新通

解决方案

作为测试用例的class类不可以有__init__(self)方法

结果验证

注释掉__init__(self)方法,再次运行,查看结果
demo code:

class TestApi:
    # def __init__(self):
    #     print('init')

    def test_login(self):
        print('login test')

结果:
collected 1 item :可以读到case了

=============================================== 1 warning in 0.10s ===============================================

(base) D:\python\office_txt\DemoTest>pytest
================================= test session starts ===================================
platform win32 -- Python 3.7.0, pytest-6.2.3, py-1.10.0, pluggy-0.13.1
rootdir: D:\python\office_txt\DemoTest
plugins: allure-pytest-2.9.43, arraydiff-0.2, doctestplus-0.1.3, openfiles-0.3.0, remotedata-0.3.3
collected 1 item                                                                                                  

test_1.py .                                                                                                 [100%]

=================================== 1 passed in 0.12s ======================

over~~~

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhejeeeb
系列文章
更多 icon
同类精品
更多 icon
继续加载