pytest框架实例
时间: 2025-05-06 11:20:24 浏览: 31
<think>好的,我现在需要帮助用户找到关于pytest框架的使用示例代码。用户明确提到了引用中的内容,特别是引用[2]和引用[5],这些可能包含相关的示例。首先,我应该回顾用户提供的引用内容,提取有用的信息。
首先,查看引用[2],里面有一个作用于类的示例代码。用户可能对如何在类中编写测试用例感兴趣。引用[2]中的代码展示了如何在类中定义测试方法,并使用pytest.main来运行测试。这可以作为基础示例。
接下来,引用[5]提到了参数化测试,使用@pytest.mark.parametrize装饰器。参数化测试是pytest的一个强大功能,可以为一个测试函数提供多组数据,减少重复代码。这应该包含在示例中,以展示更高级的用法。
另外,引用[4]提到了pytest.ini配置文件,虽然用户主要要求示例代码,但可能也需要简要提及配置文件的使用,以帮助用户理解如何自定义测试行为。不过用户的问题集中在代码示例上,所以这部分可能作为补充。
用户可能还需要知道如何运行测试,例如命令行参数或主函数中的调用方式。引用[2]和引用[4]都提到了使用pytest.main()来执行测试,并且引用[4]还提到了addopts配置,可以简化命令行参数。
需要确保示例代码的正确性,比如在引用[2]中的断言语句是否正确,例如“assert 12 > 100”显然会失败,但作为示例是可以接受的。同时,注意代码格式是否正确,比如使用正确的装饰器和语法。
此外,用户可能对测试用例的命名约定和目录结构有疑问,但根据问题,用户主要需要代码示例。因此,示例应涵盖基本测试函数、测试类、参数化测试以及如何运行测试。
总结需要提供的示例:
1. 基本测试函数
2. 测试类中的方法
3. 参数化测试用例
4. 使用pytest.main()运行测试
5. 可能涉及fixture的使用,但引用中没有提到,所以可能暂时不包含
需要检查每个示例是否符合pytest的规则,比如测试函数以test_开头,测试类以Test开头。同时,确保代码中的语法正确,例如在参数化时正确使用装饰器参数。
最后,生成相关问题,帮助用户深入理解,比如如何组织测试目录、如何处理依赖或使用插件等,但需要基于引用内容。例如,引用[3]提到了数据驱动和YAML,可能相关问题可以涉及数据驱动测试。</think>以下是pytest框架的典型使用示例及说明,结合基础功能和常用插件特性:
### 一、基础测试用例示例
```python
# test_basic.py
def test_addition():
assert 1 + 1 == 2 # 基础断言
class TestMathOperations: # 测试类必须以Test开头
def test_subtraction(self):
assert 5 - 3 == 2
def test_failure_case(self):
assert 12 > 100 # 故意设计的失败用例[^2]
```
### 二、参数化测试示例
```python
# test_parametrize.py
import pytest
@pytest.mark.parametrize("input,expected", [
(3+5, 8),
(2*4, 8),
(6//2, 3)
])
def test_calculation(input, expected):
assert input == expected # 多组数据驱动测试[^5]
```
### 三、fixture使用示例
```python
# test_fixture.py
import pytest
@pytest.fixture
def database_connection():
print("\n建立数据库连接") # 前置操作
yield "connection_obj"
print("\n关闭数据库连接") # 后置清理
def test_query_data(database_connection):
assert isinstance(database_connection, str)
```
### 四、运行配置示例
```python
# run_tests.py
import pytest
if __name__ == "__main__":
# 带详细日志(-v)和捕获输出(-s)
pytest.main(['-v', '-s', 'test_basic.py'])
# 仅运行上次失败的用例(--lf)
pytest.main(['--lf', 'test_parametrize.py']) [^4]
```
阅读全文
相关推荐


















