Я пытаюсь подавить вывод терминала ALL из юнит-теста python и хочу дать только пользовательскую обратную связь, основанную на том, прошел ли тест или не прошел.Ничто из того, что я нашел в Интернете, похоже, не работает.Мой вариант использования - предоставить обратную связь / подсказки новым студентам, изучающим Python.
Я вызываю unittest со своим сценарием оболочки (я пробовал несколько вариантов "dev / null"):
if python -m unittest discover -s test; then
echo "<div class='pass'>pass</div>"
else
echo "<div class='fail'>fail</div>"
fi >>/dev/null
Ниже приведен мой файл юнит-теста python:
import unittest
import sys
import os
sys.path.insert(0, '/path/to/module')
import myFile
sys.stdout = os.devnull //tried this but didn't work
sys.stderr = os.devnull //tried this but didn't work
class TestCalc(unittest.TestCase):
def test_add(self):
result = calc.add(10, 5)
self.assertEqual(result, 15)
if __name__ == '__main__':
unittest.main()
На самом деле эхо-запрос в моем скрипте оболочки запускается в зависимости от того, пройден ли тест или нет, но над ним выводятся все результаты терминала.который я не хочу.(Вывод находится в интерактивной IDE, когда я его запускаю)
Добавление: я не смог найти ни одного дополнительного параметра unittest, чтобы подавить все выходные данные.