pytest 常用的装饰器有哪些,详细展开并举例说明
时间: 2023-12-12 17:19:45 浏览: 133
pytest 常用的装饰器有以下几个:
1. `@pytest.fixture`:用于创建测试用例需要使用的测试数据或测试环境,并在测试用例执行前后完成资源的分配和释放。例如:
```python
@pytest.fixture
def user():
return User('test_user', '123456')
def test_login(user):
assert login(user.username, user.password) == 'success'
```
2. `@pytest.mark.parametrize`:用于参数化测试用例,允许在同一个测试函数中多次执行相同的测试用例,只需提供不同的参数组合即可。例如:
```python
@pytest.mark.parametrize('a, b, expected', [(1, 2, 3), (3, 4, 7)])
def test_add(a, b, expected):
assert add(a, b) == expected
```
3. `@pytest.mark.skip`:用于跳过某些测试用例,通常是因为这些测试用例不适用于当前的测试环境或测试数据。例如:
```python
@pytest.mark.skip(reason='not implemented')
def test_something():
pass
```
4. `@pytest.mark.xfail`:用于标记期望测试用例失败,即使测试用例失败了也不会报错,通常是因为这些测试用例涉及到一些还未实现的功能。例如:
```python
@pytest.mark.xfail(raises=ZeroDivisionError)
def test_divide_by_zero():
assert 1 / 0 == 0
```
以上是 pytest 常用的装饰器及其用法,希望能对你有所帮助。
阅读全文