我是靠谱客的博主 眼睛大皮带,最近开发中收集的这篇文章主要介绍pytest快速入门(1),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

pytest系列教程(1)
简介–The pytest framework makes it easy to write small, readable tests, and can scale to support complex functional testing for applications and libraries.
官网地址 https://docs.pytest.org/en/7.2.x/
中文翻译地址 https://learning-pytest.readthedocs.io/zh/latest/doc/intro/getting-started.html
1.安装(python环境已安装,pip正常)
python -m pip install pytest
在这里插入图片描述

2.创建你的第一个测试

# test_001.py
import pytest
def add(x):
    return x + 1
def test_true():
    assert add(9) == 10
def test_false():
    assert add(8) == 4
if __name__ == "__main__":
    pytest.main(['-vs', 'test_001.py'])
test_001.py::test_true PASSED
test_001.py::test_false FAILED

================================== FAILURES ===================================
_________________________________ test_false __________________________________

    def test_false():
>       assert add(8) == 4
E       assert 9 == 4
E         +9
E         -4

test_001.py:13: AssertionError
- generated html file: file:///D:/workspaces/pytest_test/pytest_02/report.html -
=========================== short test summary info ===========================
FAILED test_001.py::test_false - assert 9 == 4
========================= 1 failed, 1 passed in 0.17s =========================

Process finished with exit code 0

注解
pytest 使用 . 标识测试成功(PASSED)
pytest 使用 F 标识测试失败(FAILED)
Pytest 支持多种从命令行运行和选择测试的方法及参数输入

if __name__ == '__main__':

    # print('ok')
    # (1)运行全部
    pytest.main()
    # os.system("allure generate ./temp -o ./allure-report --clean")
    # (2)运行指定模块
    # pytest.main(["-vs", "test_0001.py"])
    # (3)运行指定文件夹(目录)
    # pytest.main(["-vs", "../pytest_test"])
    # (4)通过nodeid指定测试用例运行,nodeid = 模块名,分隔符,类名,方法名,函数名组成
    # pytest.main(["-vs", "../pytest_test/test_0001.py::test_04"])
    # (5)多线程或分布式运行测试用例
    # pytest.main(["-vs", "../pytest_test/test_0001.py", "-n=2"])
    # (6)失败用例重跑
    # pytest.main(["-vs", "../pytest_test/test_0001.py", "--reruns=1"])
    # (7)只要有一个用例错了,测试停止
    # pytest.main(["-vs", "../pytest_test/test_0001.py", "-x"])  # 用的较少
    # (8)出现2个用例失败就停止
    # pytest.main(["-vs", "../pytest_test/test_0001.py", "--maxfail=2"])  # 用的较少
    # (9)根据测试用例的部分字符串指定测试用例
    # pytest.main(["-vs", "../pytest_test/test_0001.py", "-k=AA", ])

-s 表示输出调试信息,包括print打印信息
pytest -s ./pytest_1 或 pytest.main([‘-s’, ‘./pytest_1/test_login.py’])
-v 表示输出用例执行详细信息
-vs 表示既输出调试信息同时输出执行详细信息
-n [n] 支持多线程或者分布式运行测试用例
–reruns [n] 失败用例重跑
-x 只要存在失败用例则停止执行
–maxfail [n] 只要存在max个失败用例则停止执行
-k [xx] 根据测试用例的部分字符串执行用例
如:pytest test.py -k ‘关键字A or 关键字B’
–html [xx.html] 生成测试报告(需要先安装pytest-html)
如:pytest pytest-demp.py --html-./report.html

3.编写原则
pytest将在当前目录及其子目录中运行 ​test_.py​ 或 ​_test.py​ 形式的所有文件
pytest 可以很容易地创建一个包含多个测试的类:
在这里插入图片描述
可指定运行测试类下测试用例:python -m pytest -s test_001.py::setup_class
或 pytest.main([“-vs”, “…/pytest_test/test_001.py::test_04”])

# test_001.py
class TestDemo:

    def setup_class(self):
        print("这是一个setup_class")

    def teardown_class(self):
        print("这是一个teardown_class")

最后

以上就是眼睛大皮带为你收集整理的pytest快速入门(1)的全部内容,希望文章能够帮你解决pytest快速入门(1)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部