У меня есть некоторые команды управления Django, которые вызывают методы в других классах для выполнения различных задач, таких как выборка данных из внешних API.Отображение прогресса одной строки во время команды управления Django и ее отключение во время тестов
В этих методах я вывода одну строку, которая отображает прогресс, что-то вроде:
print('Fetched %d of %d' % (n, total) + ' '*30, end='\r')
Это работает отлично, но когда я запускаю мои тесты это получает распечатаны и щурит на дисплее .....E....F...
. Я мог бы заплатить print
во всех моих тестах, но это кажется неуклюжим.
Итак (a) Должен ли я выводить эту линию прогресса другим способом и/или (b) есть лучший способ подавить этот вывод во время выполнения тестов?
У вас может быть ваша собственная обертка вокруг печати, которая будет проверять, является ли sys.stdout терминалом или нет, и в зависимости от этого ведут себя по-другому, например. \ r для терминала \ n для файла или трубы – Jerzyk