В pytest можно задавать последовательность выполнения тестов с помощью функционала pytest-order. Вот несколько способов организации последовательности тестов:
1. Использование декоратора `pytest.mark.run(order=n)`:
- Добавьте `pytest-order` в зависимости вашего проекта (`pip install pytest-order`).
- Импортируйте декоратор `pytest.mark.run` в ваш файл с тестами.
- Добавьте декоратор перед каждым тестовым методом с определенным значением `n`, чтобы указать их порядок выполнения.
```python
import pytest
@pytest.mark.run(order=1)
def test_one():
assert True
@pytest.mark.run(order=2)
def test_two():
assert True
```
2. Использование декоратора `pytest.mark.order(n)`:
- Добавьте `pytest-order` в зависимости вашего проекта (`pip install pytest-order`).
- Импортируйте декоратор `pytest.mark.order` в ваш файл с тестами.
- Добавьте декоратор перед каждым тестовым методом с определенным значением `n`, чтобы указать их порядок выполнения.
```python
import pytest
@pytest.mark.order(1)
def test_one():
assert True
@pytest.mark.order(2)
def test_two():
assert True
```
3. Использование pytest.ini:
- Создайте файл `pytest.ini` в корневом каталоге вашего проекта (если его еще нет).
- В файле `pytest.ini` добавьте следующую секцию:
```ini
[pytest]
console_output_style = classic
testpaths =
tests
python_classes = *Tests
python_functions = test_*
env =
YOUR_ENVIRONMENT_VARIABLE=your_value
```
4. Использование именованных тестовых классов:
- Создайте тестовый класс и назовите его в соответствии с желаемой последовательностью выполняемых тестов.
```python
class TestOne():
def test_one():
assert True
class TestTwo():
def test_two():
assert True
```
Когда используется pytest-order, все тесты выполняются по умолчанию в порядке возрастания значений `n`.