pycharm使用pytest
时间: 2024-12-31 07:34:35 浏览: 7
### 如何在 PyCharm 中使用 pytest 进行测试
#### 配置 Python 解释器和 pytest 测试框架
当选择一个 Python 解释器时,PyCharm 会自动检测已安装的测试运行器并默认设置为 `unittest` 如果未找到其他测试工具。因此,在希望使用 `pytest` 而不是内置测试框架的情况下,需要告知 PyCharm 使用 `pytest` [^1]。
配置方法如下:
- 打开 **Settings/Preferences** 对话框 (Ctrl+Alt+S 或 Cmd+, on macOS),导航到 **Project:** *<project_name>* → **Python Interpreter**。
- 安装 `pytest` 库:点击右侧齿轮图标中的 "+" 号来搜索并安装 `pytest` 和其依赖项。
- 导航至 **Tools** → **Python Integrated Tools** 并将 **Default test runner** 设置为 `pytest`。
#### 编写测试用例
编写遵循 pytest 命名约定的测试类与函数可以确保这些测试能被正确识别执行。下面是一个简单的例子展示如何定义测试类及其成员函数[^2]:
```python
import pytest
class TestSample:
@classmethod
def setup_class(cls):
"""初始化操作"""
print("\n初始化环境")
def teardown_class(cls):
"""清理工作"""
print("\n结束测试")
def test_example_pass(self):
"""通过的测试案例"""
print('\n这是一个成功的测试')
assert True
def test_example_fail(self):
"""失败的测试案例"""
print('\n这是一个失败的测试')
assert False
```
此代码片段展示了两个基本的测试方法以及用于准备 (`setup_class`) 和清除 (`teardown_class`) 的类级别夹具(fixtures) 方法。注意这里还包含了打印语句以便于理解各阶段的日志输出情况。
#### 修改 pytest 配置文件
对于更复杂的项目结构或特定需求,可以通过编辑项目的根目录下的 `pytest.ini` 文件来自定义行为。例如指定报告格式、重跑次数等参数:
```ini
[pytest]
addopts = -s --html=./report/report.html --junitxml=./report/report.xml --reruns 2
testpaths = ./tests/
python_files = test_*.py conftest.py
python_classes = Test*
python_functions = test*
```
上述配置指定了 HTML 报告保存位置、JUnit XML 输出路径,并允许失败后的两次重试机会;同时也限定了哪些类型的文件会被当作测试模块处理。
#### 启动测试
完成以上准备工作之后就可以直接右键点击某个具体的方法或者整个测试文件来进行调试了。也可以从顶部菜单栏选择 **Run 'pytest in ...'** 来启动全部测试套件。
阅读全文