Используйте декоратор `@pytest.mark.имя_маркера` для пометки тестов.
  import pytest
  @pytest.mark.slow
  def test_slow_feature():
      assert True
  @pytest.mark.fast
  def test_fast_feature():
      assert True
  Запуск тестов с определенной меткой:
  pytest -m slow
  Запуск тестов без определенной метки (инверсия):
  pytest -m "not slow"
  `pytest` автоматически определяет тесты внутри файлов, начинающихся с `test_` или заканчивающихся на `_test.py`, в указанной директории.
  pytest tests/
  Можно запускать тесты, в названии которых есть определенное слово.
   pytest -k "login" #Запустит все тесты, содержащие "login" в имени функции/класса.
  Тесты можно группировать внутри классов, чтобы логически сгруппировать тесты связанные с определенным функционалом.
  class TestUserAccount:
      def test_login(self):
          assert True
      def test_logout(self):
          assert True
  Для группировки тестов и запуска их с помощью командной строки в pytest можно использовать несколько подходов:
Маркеры позволяют назначать тестам произвольные метки и затем запускать только те тесты, которые помечены определенным маркером.
Определение маркеров:
В файле pytest.ini (или pyproject.toml) укажите маркеры, которые вы будете использовать.  Это помогает pytest распознать ваши маркеры и избежать предупреждений.
  Например:
# pytest.ini
[pytest]
markers =
    slow: Тесты, требующие больше времени для выполнения.
    integration: Интеграционные тесты.
Применение маркеров в тестах:
# test_example.py
import pytest
@pytest.mark.slow
def test_long_running_task():
    # ...
    assert True
@pytest.mark.integration
def test_api_integration():
    # ...
    assert True
def test_fast_operation():
    # ...
    assert True
Запуск тестов по маркерам:
pytest -m slow       # Запускает все тесты, помеченные как 'slow'
pytest -m "not slow" # Запускает все тесты, *не* помеченные как 'slow'
pytest -m "slow or integration" # Запускает тесты с меткой slow ИЛИ integration
pytest -m "slow and integration" # Запускает тесты с метками slow И integration
pytest автоматически обнаруживает тесты, расположенные в файлах, имена которых начинаются с test_ или заканчиваются на _test. Также pytest рекурсивно обходит все подкаталоги в поисках тестовых файлов.  Таким образом, можно группировать тесты по каталогам и запускать их, указывая путь к каталогу.
Пример структуры каталогов:
tests/
    __init__.py
    unit/
        __init__.py
        test_module1.py
        test_module2.py
    integration/
        __init__.py
        test_api.py
        test_database.py
Запуск тестов по каталогам:
pytest tests/unit       # Запускает все тесты в каталоге tests/unit
pytest tests/integration # Запускает все тесты в каталоге tests/integration
pytest tests             # Запускает все тесты во всех подкаталогах в каталоге tests
Вы можете запускать тесты, имена которых содержат определенное ключевое слово.
Запуск тестов по ключевому слову:
pytest -k "api"       # Запускает тесты, содержащие 'api' в имени функции или класса
pytest -k "not api"   # Запускает тесты, *не* содержащие 'api' в имени функции или класса
pytest также обнаруживает тесты, определенные внутри классов, имена которых начинаются с Test.
    class TestMyClass:
        def test_something(self):
            assert True
        def test_another_thing(self):
            assert False
    Эти подходы можно комбинировать. Например, можно запускать тесты, помеченные маркером и содержащие определенное ключевое слово.
Пример комбинирования:
pytest -m slow -k "api"  # Запускает тесты, помеченные как 'slow' и содержащие 'api' в имени
Важно:  Убедитесь, что в ваших тестовых файлах содержатся соответствующие операторы assert для проверки ожидаемых результатов.