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 的执行方式。

posted @ 2020-08-17 10:37  子非鱼焉知鱼之乐丶  阅读(861)  评论(0编辑  收藏  举报