pytest入门一:用例的执行范围

从一个或多个目录开始查找,可以在命令行指定文件名或目录名。如果未指定,则使用当前目录。

  • 测试文件以 test_ 开头或以 _test 结尾

  • 测试类以 Test 开头 ,并且不能带有 init 方法

  • 测试函数以 test_ 开头

  • 断言使用基本的 assert 即可

  • 所有的包 pakage 必须要有__init__.py 文件

复制代码
# test_2.py
import sys

import pytest

def add(x,y):
    return x + y

@pytest.mark.add
def test_add():
    assert add(1,2) == 3
    assert add(2,3) == 5
    assert add(10,2) == 12

def is_win32():
    return True if sys.platform == 'win32' else False

class TestDemo:

    def test_demo(self):
        x = "hello world"
        print(f"{x} python")
        assert 'h' in x

    @pytest.mark.skipif(sys.platform == 'win32',reason='win32跳过用例')
    def test_demo3(self):
        x = "hello world"
        print(f"{x} python")
        assert 'h' in x



    only_win32 = pytest.mark.skipif(is_win32(),reason='win32跳过用例')
    @only_win32
    def test_demo4(self):
        x = "hello world"
        print(f"{x} python")
        assert 'h' in x

    @pytest.mark.skip("变更")
    def test_demo2(self):
        x = 'hello'
        assert hasattr(x,"check")

    @pytest.mark.xfail(reason="bug待修复")
    def test_demo5(self):
        x = 'hello'
        assert hasattr(x, "check")

if __name__ == "__main__":
    pytest.main(['-v', '-s'])

1)执行全部

if name == "main" : pytest.main(['-v' , '-s'])

2)执行某个文件

if name == "main" :

pytest.main(['-v' , '-s' ,'test_2.py'])

3)执行某个类

if name == "main" :

pytest.main(['-v' , '-s' ,'test_2.py::TestDemo'])

4) 执行某个方法

if name == "main" :

pytest.main(['-v' , '-s' ,'test_2.py::TestDemo::test_demo'])

5) mark 打标执行 pytest.mark.add

6) skip忽略执行 @pytest.mark.skip("变更")

7) 条件忽略skipif @pytest.mark.skipif(sys.platform == 'win32' ,reason='win32跳过用例')

8)xfail:预期失败 @pytest.mark.xfail

真失败会显示xfailed,成功会显示xpassed,应用场景:已知bug标注,后续验证修复

相关推荐
努力搬砖的咸鱼1 天前
从零开始搭建 Pytest 测试框架(Python 3.8 + PyCharm 版)
python·pycharm·pytest
FINE!(正在努力!)3 天前
PyTest框架学习
学习·pytest
程序员杰哥4 天前
接口自动化测试之pytest 运行方式及前置后置封装
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·pytest
测试老哥4 天前
Pytest+Selenium UI自动化测试实战实例
自动化测试·软件测试·python·selenium·测试工具·ui·pytest
水银嘻嘻4 天前
07 APP 自动化- appium+pytest+allure框架封装
python·appium·自动化·pytest
天才测试猿5 天前
接口自动化测试之pytest接口关联框架封装
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·pytest
not coder6 天前
Pytest Fixture 详解
数据库·pytest
not coder6 天前
pytest 常见问题解答 (FAQ)
开发语言·python·pytest
程序员的世界你不懂6 天前
(1)pytest简介和环境准备
pytest
not coder6 天前
Pytest Fixture 是什么?
数据库·oracle·pytest