pytest封装测试用例
时间: 2023-07-17 12:59:06 浏览: 123
pytest-示例
pytest提供了很多方便的功能来封装测试用例。下面是一些常见的封装测试用例的方法:
1. 使用装饰器:pytest可以使用装饰器来标记测试用例,例如使用`@pytest.mark.parametrize`装饰器来参数化测试用例,使用`@pytest.mark.skip`装饰器来跳过某些测试用例等。
```python
import pytest
@pytest.mark.parametrize("input, expected", [
(1, 2),
(3, 6),
])
def test_multiply(input, expected):
assert input * 2 == expected
@pytest.mark.skip(reason="not implemented yet")
def test_skip():
assert 1 + 1 == 2
```
2. 使用fixture:pytest的fixture机制可以用来封装测试用例的前置条件和后置操作。测试用例可以通过参数的方式使用fixture。
```python
import pytest
@pytest.fixture
def setup_data():
data = [1, 2, 3]
return data
def test_length(setup_data):
assert len(setup_data) == 3
def test_sum(setup_data):
assert sum(setup_data) == 6
```
3. 使用conftest.py:如果多个测试模块需要共享fixture,可以将fixture定义在conftest.py文件中。pytest会自动搜索项目中的conftest.py文件,并加载其中的fixture。
```python
# conftest.py
import pytest
@pytest.fixture
def setup_data():
data = [1, 2, 3]
return data
# test_module.py
def test_length(setup_data):
assert len(setup_data) == 3
def test_sum(setup_data):
assert sum(setup_data) == 6
```
这些方法可以帮助你更好地封装和组织pytest的测试用例。当然,pytest还提供了其他很多强大的功能,你可以根据具体的需求选择合适的方式来封装测试用例。
阅读全文