Как я могу документировать свои тесты, только мои тесты?
Я документирую свой модульный тест с помощью Sphinx.
Моя установка следующая:
class MyTestWrapper1(unittest.Testcase)
def test_general_setup()
class MyTestWrapper2(MyTestWrapper1)
def test_general_tear_down()
class TheUsedTest1(MyTestWrapper2)
def test_specific_test()
Как мы видим, родительский элемент - это Unittest.TestCase, и все происходит от TheUsedTes1.
Теперь я собираюсь задокументировать класс TheUsedTest1
.
Я хотел бы иметь все функции-члены, начиная с test_
, показанные в выходных данных HTML.
Для архивации я использовал параметр :inherited-members:
, который фактически отображает все test_*
элементы. Но он также отображает ВСЕ ДРУГИЕ функции-члены из unittest.
.. automodule:: TheUsedTes1
:members:
:inherited-members:
Я попытался добавить в свой conf.py следующий фрагмент. Он должен пропускать специальные части.
def maybe_skip_member(app, what, name: str, obj, skip, options):
print(name, file=sys.stderr, end='')
if name.startswith('test_'):
print(".. OK", file=sys.stderr)
return False
else:
print(".. nope", file=sys.stderr)
return True
def setup(app):
app.connect('autodoc-skip-member', maybe_skip_member)
Но он не работает должным образом. Каждый повторяемый объект уничтожается, если он не начинается с test_
. Однако, если итерация превышает TheUsedTest1
, она уничтожается, и любая функция-член не соблюдается. Таким образом, он никогда не доходит до членов, которые должны быть задокументированы.