• pytest(十七)--配置文件pytest.ini


    前言

    pytest配置文件可以改变pytest的运行方式,它是一个固定的文件pytest.ini文件,读取配置信息,按指定的方式去运行。

    ini配置文件

    pytest里面有些文件是非test文件

      pytest.ini pytest的主配置文件,可以改变pytest的默认行为

      conftest.py 测试用例的一些fixture配置

      __init__.py 识别该文件为python的package包

      tox.ini 与 pytest.ini类似,用tox工具时候才有用

      setup.cfg 也是ini格式文件,影响setup.py的行为

    ini文件基本格式

    #保存为pytest.ini文件
    [pytest]
    
    addopts = -rsxX
    xfail_strict = true

     -rsxX表示pytest报告所有测试用例被跳过、预计失败、预计失败但实际被通过的原因。

    使用pytest --help指令可以查看pytest.ini的设置选项

     mark标记

    如下案例,使用2个标签:test和add(名字可以随便起),使用mark标记功能对于以后分类测试非常有用处;

    首先当前包下,新建pytest.ini文件,写入以下内容(注意:若是pytest.ini中不添加mark的标签,可以执行成功,但会报警告):

     标记好之后,pytest0729的目录下使用pytest --markers查看(注意非当前pytest.ini目录,执行该命令,不会显示标记):

     参考代码:

    #test_answers.py
    import pytest
    @pytest.mark.test
    def test_send_http():
        print("mark web test")
    
    def test_something_quick():
        pass
    
    def test_another():
        pass
    
    @pytest.mark.add
    class TestClass:
        def test_01(self):
            print("hello :")
    
        def test_02(self):
            print("hello world!")
    
    if __name__ == "__main__":
        pytest.main(["-v", "test_answers.py", "-m=add"])
    

    cmd下运行 pytest -v -m=add

     禁用xpass

    设置xfail_strict=true可以让那些标记为@pytest.mark.xfail但实际通过的测试用例被报告为失败。

    #test_answers.py
    import pytest
    def test_xixi():
        print("xixi")
        assert 1
    @pytest.mark.xfail()
    def test_t1():
        a="hello"
        b="hello sky"
        assert a==b
    
    @pytest.mark.xfail()
    def test_t2():
        a="hello"
        b="hello sky"
        assert a!=b
    if __name__=="__main__":
        pytest.main(["-s","test_answers.py"]) 

    运行结果(这报告也忒简单了,迷糊ing):

     test_t1和test_t2这两个用例一个时a==b一个是a!=b,两个都标记失败了,我们希望两个用例不用执行全部显示xfail。实际上最后一个却显示xpass,为了让两个都显示xfail,那就加个配置xfail_strict=true

    再次运行,结果如下:

    本来xpassed的结果变成了failed;

     配置文件如何放

    一般一个工程下放一个pytest.ini文件(文件名只能叫它,不能乱改的)

     addopts

    addopts参数可以更改默认命令行选项,这个当我们在cmd输入指令去执行用例的时候,会用到,比如我想测试完生成报告

    pytest -v --reruns 1 --html=report.html --self-contained-html 

     每次输入这么多,不太好记住,于是可以加到pytest.ini里,再次执行,就会生成report.html

     这样我下次打开cmd,直接输入pytest,它就能默认带上这些参数了

    注意:请先安装pytest-html,pytest-rerunfailures

     

    越努力,越幸运!!! good good study,day day up!!!
  • 相关阅读:
    Spring 集成Quartz
    windows跟linux文件共享
    5.5.3使用terminfo功能标志
    5.4.1 termios结构,关闭回显功能,一键入字符fgetc立刻返回,不用按下回车键
    5.2与终端进行对话
    5.1对终端进行读写
    4.8资源和限制
    4.7日志
    大小端问题
    QWebView下载文件,QUrl中解析文件名
  • 原文地址:https://www.cnblogs.com/canglongdao/p/13405155.html
Copyright © 2020-2023  润新知