pip install pytest#安装pytest模块
pytest --version #查看安装的版本 验证是否安装成功
# -*- coding: utf-8 -*-
def test_1():
a=1
b=1
assert a==b
运行有两种方式
此方法会执行当前目录下识别到的所有符合pytest文件编写规则的用例
若要指定某个py文件执行则要输入pytest 文件名.py
结果如下
==============================================================
test session starts
===============================================================
platform win32 -- Python 3.7.3, pytest-5.4.3,
py-1.9.0, pluggy-0.13.1c
rootdir:
E:\Program Files\PycharmProjects\untitled\day2\pytest_day1
plugins: allure-pytest-2.8.16
collected 1 item
test_case.py . [100%]
===============================================================
1 passed in 0.02s
================================================================
1.默认从当前目录中搜索case,即在哪个目录下运行pytest命令,则从哪个目录中搜索
2.可以通过 pytest 地址 指定搜索的目录
注意:需要导包
# -*- coding: utf-8 -*-
import pytest
def test_1():
a=1
b=1
assert a==b
if __name__ == '__main__':
pytest.main()
在运行测试用例的时候。由于创建了测试类,而每个测试类中包含了用例。我们往往不会将用例全部执行。常常会筛选用例进行执行.
这个时候我们可以通过pytest.mark将用例进行分类,从而到达筛选用例的功能
1.创建标签名
2.在测试用例/测试类前加上标记 @pytest.mark.标记名
[pytest]
markers=
smoking:smoke test
mood:mood test
注意:smoking为标签名(不支持中文),冒号后面是对该标记的解释(不支持中文)方便管理员进行查看
import pytest
@pytest.mark.smoking
def test_1():
a=1
b=1
assert a==b
import pytest
def test_2(aa):
#选择执行那个fixture
a=1
b=1
assert a==b
print("先执行上式代码")
@pytest.fixture()
def aa():
a=1
b=1
assert a==b
print("先执行上面代码")
yield #类似分隔符号 yield 上面的代码表示用例执行前 下面的表示用例执 行之后
pass
print("再执行yield后面代码")
test_case.py文件
@pytest.mark.usefixtures("aa") #表示调用方法名为aa的前置后置
def test_2():
assert 1!=0
test_data=[('admin','123456'),('root','123456')]
@pytest.mark.parametrize('name,passwd',test_data)#会传两次参
def test_01(name,passwd):
print(name,passwd,ex)
(转载注明出处)