• pytest扫盲1--pytest运行规则


    pytest 官方API说明:https://docs.pytest.org/en/latest/reference.html

    1、pytest安装: pip install -U pytest -i https://pypi.tuna.tsinghua.edu.cn/simple

    2、pytest运行方式:

    • 不带参数:  pytest 
    • 指定模块:  pytest  .py文件名
    • 指定目录:  pytest dir
    • 关键字过滤: pytest -k "MyClass and not method"
      • 关键字包括 文件名、类名、方法名
    • 节点id:    py模块名::类名::方法名 或者 py模块名::函数名    pytest test_xxx.py::TestXxx::func_xxx
    • 标签表达式: 执行被装饰器 @pytest.mark.smoke 装饰的所有测试用例    pytest -m smoke
    • 从包里面运行:  从pkg.test包所在位置查找和执行用例    pytest --pyargs pkg.test
    • 停止测试:
      • -x 遇到错误时停止测试  pytest -x test_xxx.py
      • 当用例错误个数达到指定数量时,停止测试  ytest –maxfail=1 

    3、pytest运行规则:

    • pytest 匹配 当前目录 下以 test_*.py 或者 *_test.py 命名的所有文件
    • 如果文件中存在以 test_ 开头的函数,则运行所有 test_ 开头的函数
    • 如果文件中存在以 Test_ 开头的类(没有__init__函数),则匹配 Test_ 类中以 test_ 开头的方法

    4、编写一个名为 demo_1.py 的文件

    def my_func(x):
    return x

    def test_my_func():
    assert my_func('hello world!') == 'hello world'

    class TestMethod:
    def test_1(self):
    a = 'hello world!'
    assert 'hello' in a

    def test_2(self):
    x = 'hello world!'
    assert hasattr(x, 'helloWorld')

    def others(self):
    b = 3
    assert b == 4

      1)直接执行 pytest,运行结果未找到可执行用例,因为文件名为 demo_1,不符合pytest运行的规则

      2)指定文件名,执行 pytest demo_1.py,用例执行成功,只执行 test_开头的函数,others()方法未执行

    5、测试用例设计规则:

    • 以test_*.py 或者 *_test.py 的文件
    • 以 test 开头的函数名
    • 以Test 开头的类(没有__init__函数),以test_开头的函数

    6、unittest 框架代码兼容,修改 pycharm 测试脚本的默认执行器为 pytest,再次执行时,会出现 pytest in xx.py 的执行方式。

    喜时之言,多失信;怒时之言,多失体
  • 相关阅读:
    A1023 Have Fun with Numbers (20分)(大整数四则运算)
    A1096 Consecutive Factors (20分)(质数分解)
    A1078 Hashing (25分)(哈希表、平方探测法)
    A1015 Reversible Primes (20分)(素数判断,进制转换)
    A1081 Rational Sum (20分)
    A1088 Rational Arithmetic (20分)
    A1049 Counting Ones (30分)
    A1008 Elevator (20分)
    A1059 Prime Factors (25分)
    A1155 Heap Paths (30分)
  • 原文地址:https://www.cnblogs.com/xiaohuboke/p/13516202.html
Copyright © 2020-2023  润新知