Как задокументировать, какие тесты применимы для функции в Python?

#python #testing #documentation #python-sphinx #restructuredtext

#python #тестирование #Документация #python-sphinx #реструктурированный текст

Вопрос:

У меня есть функция в Python. Я хотел бы задокументировать расположение одного или нескольких тестов для этой функции — может быть, в docstrings, может быть, в комментариях, может быть, где-нибудь в теле функции или над ним … на самом деле, подойдет любое место, близкое к телу функции.

Я хочу быстро найти, какие тесты были написаны для этой конкретной функции.

У меня есть соглашение об именовании тестов в моем проекте, но в некоторых случаях его быстро становится недостаточно.

Кроме того, поскольку я использую IDE для этого проекта, я хотел бы, чтобы он понимал эти ссылки на имена тестовых функций, чтобы я мог легко управлять щелчком мыши по местоположению тестовой функции.

Я просмотрел документацию Sphinx, но не нашел никаких тегов :test: , подобных или что-то в этом роде. Я мог бы задокументировать местоположение, используя :py:func: or :y:class: , но не похоже, что моя выбранная среда разработки (PyCharm) понимает эти перекрестные ссылки — если у меня есть строка like :param foo: , похоже, я могу ссылаться на классы, используя :py:class: .

Существуют ли какие-либо разумные, стандартизированные решения для этой моей маленькой проблемы? За исключением создания пользовательского тега для Sphinx, это точно — это сработает, но, скорее всего, PyCharm этого не поймет. У вас тоже была эта проблема? Что сработало для вас?

Редактировать: Я использую pytest , если это имеет значение.

Комментарии:

1. Есть ли у вас какие-либо конкретные рамки тестирования?

2. Хотя документирование тестов, к сожалению, игнорируется, соглашение такое же, как и для проектов Python, в частности, используйте docstrings . Оттуда, в PyCharm, выберите корень вашего каталога тестов и найдите в нем все экземпляры вашей функции.

3. @bad_coder Я использую pytest. Вопрос обновлен.

4. @StevePiercy У меня есть соглашение для моих тестов. test_ClassName_functionName_some_extra_stuff . К сожалению, в моей IDE нет простого способа перейти к тестовой функции. Кроме того, такое соглашение не удовлетворяет всем возможным случаям… имейте в виду, что это даже не угловые случаи.

5. @dotz вам не нужно вводить полное имя. В окне проекта введите «clafunsome», и PyCharm должен выделить тест, который вы ищете, или использовать стрелку вниз, чтобы перейти к следующему экземпляру.