тесты запускаются внутри класса с помощью конструктора - PullRequest
0 голосов
/ 01 ноября 2019

Я хочу написать набор тестов для API. мое дерево проекта выглядит так: дерево проекта

Мне нужен файл «client» с классами, в котором мы инициализируем все вспомогательные функции (например, фактический запрос, который отправляется с параметрами,утверждает, конфиги и т. д.). И актуальный тестовый класс. поэтому у меня есть

class Client()
  __init__()
  def helper_function()
class TestBackend(Client)
  __init__()
  def test_something()

Затем я пытаюсь запустить свои тесты с pytest. Я продолжаю получать

PytestWarning: не могу собрать тестовый класс 'TestBackend', потому что он имеет конструктор init .

Как описано py.test пропускает тестовый класс, если определен конструктор это ожидаемое поведение. SO ссылается на эту документацию , но из-за любви ко всему святому я не могу найти решение моей проблемы, и я не верю, что это не тот случай, который часто требуется.

1 Ответ

0 голосов
/ 04 ноября 2019

Да, вы правы, если в классе определено "__ init __ ()" , то py-test не будет собирать классы для целей тестирования. Но если вы хотите инициализировать все вспомогательные методы и файл, вы можете добавить этот файл в pythonpaths в файле конфигурации pytest.ini , как показано ниже: -

[pytest]
python_paths = . <path to helper file>

И иззатем вы можете напрямую импортировать этот конкретный файл в свой тестовый скрипт.

Надеюсь, вы найдете свой ответ.

...