Как получить список имен методов успешных тестов в unittest.Результат тестирования?

#python #unit-testing #python-unittest

#python #модульное тестирование #python-unittest

Вопрос:

Я проверял онлайн-документацию unittest.TestResult. Если я правильно понимаю, экземпляр этого класса имеет два итеративных атрибута: errors и failures которые возвращают экземпляры unittest.TestCase . И затем, используя unittest.TestCase.id() метод, можно получить абсолютный путь пакета к test_* методу (включая его имя), который был вызван и выполнен.

Однако я не нашел ни одного атрибута, unittest.TestResult позволяющего найти список успешных тестов (после запуска a unittest.TestSuite ).

Итак, мой вопрос в том, как следует действовать, чтобы их найти?

Ответ №1:

Наконец, то, что я сделал, использовало наследование. Поэтому я расширил unittest.TestResult класс и добавил новый атрибут, список для отслеживания успешных тестов. Список обновляется следующим способом : wasSuccessful() . Исходя из документации, для этого метода нет реализации по умолчанию, поэтому я переопределил его в своем расширенном классе, чтобы достичь того, что я искал.

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

1. Спасибо за публикацию вашего решения. Трудно поверить unittest.TestResult , что он не содержит списка пройденных тестов, не так ли! Вы хотели сказать, что вы переписали addSuccess(self,test) метод? wasSuccessful() Метод не имеет test в качестве параметра, поэтому у меня это не работает. addSuccess работает для меня, но у меня возникают проблемы с перечислением точных имен subTests проходящих тестов… Это важно для меня.