下面是关于"pytest基本用法简介"的完整攻略。
一、什么是pytest
Pytest是一个功能强大的Python测试框架,其中所提供的主要特性包括自动化测试、可插拔性、测试时间短、支持参数化等。它可以扩展unittest测试框架的功能,同时还能够使用更加Python风格的语法实现测试用例的编写。Pytest是Python中非常受欢迎的测试框架之一,由于其易于使用和扩展性,因此它已经成为了开源项目中测试的首选框架之一。
二、安装pytest
通过pip工具安装pytest:
pip install pytest
安装完毕后,可以通过以下命令检查是否安装成功:
pytest --version
三、pytest的基本使用方法
一、测试函数
1.测试用例文件以test_开头 (以_test结尾的文件也会自动被检测到)。
2.测试函数以test_开头。
def test_success():
assert 1 == 1
def test_fail():
assert 1 == 2
运行以上测试用例:
pytest test_pytest.py
二、测试类
1.测试用例中包括测试类时,测试类以Test开头,并且不能带有 init 方法。
2.测试函数以test_开头。
class TestSuccessFail:
def test_success(self):
assert 1 == 1
def test_fail(self):
assert 1 == 2
运行以上测试用例:
pytest test_pytest.py -v
-v选项可以显示详细的测试结果。
四、pytest的fixture机制
Fixture机制是Pytest提供的重要功能之一,它可以用来提供测试数据和共享测试环境。提供Fixture的多种方式:
1.函数或方法的方式
@pytest.fixture()
def login():
account = "jack"
password = "123456"
return (account, password)
def test_login(login):
print(login)
其中@login装饰器将函数标记为一个Fixture,test_login这个测试函数将会接收到login这个Fixture。
2.作为参数传入测试函数
@pytest.fixture()
def login():
account = "jack"
password = "123456"
return {"account": account, "password": password}
def test_login(login):
print(login["account"], login["password"])
其中,login也是一个Fixture,作为参数传递给测试函数。
3.在conftest.py文件中,定义Fixture的全局共享
@pytest.fixture(scope='session')
def login():
account = "jack"
password = "123456"
return {"account": account, "password": password}
五、pytest命令行选项
Pytest支持很多命令行选项,以下是一些常用的选项:
1.-v, --verbose 输出详细的测试结果。
2.-q, --quiet 简化测试结果,只输出失败的信息。
3.-k, --keyword=expression 执行指定的测试。可以使用and,or和not运算符,以及括号来组合多个关键字表达式。
4.-m, --markers 显示所有标记。
5.-x, --exitfirst 当遇到首个失败(或者错误)的测试时,直接退出。
6.-s, --capture=no 阻止Pytest捕获打印到标准输出(stdout)和标准错误(stderr)的消息。
7.--html=path 生成漂亮的HTML报告。
以上,就是Pytest基本用法的简单介绍,希望能对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:pytest基本用法简介 - Python技术站