pytest+allure批量执行测试用例
在 Pytest 中,可以使用装饰器 `@pytest.fixture` 来定义用例级别的前置和后置操作。下面是一个示例代码,演示了如何使用 Pytest 的前置和后置操作:
```python
import pytest
@pytest.fixture(scope="function")
def setup_function():
print("Setup function")
yield
print("Teardown function")
@pytest.fixture(scope="module")
def setup_module():
print("Setup module")
yield
print("Teardown module")
def test_case_one(setup_function):
print("Test case one")
def test_case_two(setup_function):
print("Test case two")
```
在上述代码中,我们定义了两个前置操作 `setup_function` 和 `setup_module`,并用 `@pytest.fixture` 装饰器标记它们为用例级别的前置操作。
- `scope="function"` 指定了 `setup_function` 的作用域,这里设置为函数级别,表示每个测试用例运行前都会执行一次。
- `yield` 语句之前的代码是前置操作的部分,会在每个测试用例运行前执行。
- `yield` 语句之后的代码是后置操作的部分,会在每个测试用例结束后执行。
- `scope="module"` 指定了 `setup_module` 的作用域,这里设置为模块级别,表示在整个测试模块运行前只会执行一次。
在测试用例中,我们需要将前置操作作为参数传递给测试用例函数。在上述代码中,`setup_function` 参数被传递到了 `test_case_one` 和 `test_case_two` 函数中。
当运行上述代码时,输出如下:
```
Setup module
Setup function
Test case one
Teardown function
Setup functio