Гипотетически говоря, моя функция возвращает значение и имеет множество заявлений на печать (может быть, 100 или более).Есть ли способ выполнять только доктрины, игнорируя вызовы функций печати?
Есть ли способ запустить doctest
таким образом, что вся другие печати работа может быть проигнорирована/пропущено (я знаком с +SKIP
директивы, которая предназначена для пропуска doctest
примеров), то есть, когда я выполняю свою функцию (или запустить мой модуль как скрипт) с doctest
с:
python mymodule.py
Или:
python -m doctest mymodule.py
я должен получить:
- ничего, в случае успеха; или
- сообщения об ошибках в случае сбоя любого тестового примера;
и ничего больше. Запуск doctest
не должен давать мне окно терминала с выводами/текстом из этих print
вызовов функций.
Пожалуйста, не предлагайте использовать модульное тестирование (например, unittest
), поскольку оно убьет суть вопроса.
очень хорошо. для этого последнего случая, как насчет 'COMMAND = os.path.splitext (os.path.basename (sys.argv [0])) [0]; print = (lambda * args, ** kwargs: None), если COMMAND == 'doctest' else print' ...? –
@jcomeau_ictx Я бы защитил переназначение, а не использовал тернарное выражение, но это сработает, если вам понадобится этот край. – jonrsharpe
Да, я бы тоже, если бы не пытался ввести его в поле комментариев: smile: –