Как получить результаты тестов Python 3.7 в методе tearDown () - PullRequest
0 голосов
/ 21 сентября 2019

Я ищу способ получения статуса выполнения (Pass, Fail, Error) в методе tearDown () модуля тестирования python 3.7.

Я искал много решений, но не могу найти такое, котороеработает для python 3.7

Я уже пробовал решения, но в python 3.7 нет таких функций, как self._feedErrorsToResult или self._outcome, ниже приведена ссылка

Получение единичных результатов Python приводит кметод tearDown ()

import unittest

class MyTest(unittest.TestCase):
    def tearDown(self):
        if hasattr(self, '_outcome'):  # Python 3.4+
             result = self.defaultTestResult()  # these 2 methods have no 
side effects
            self._feedErrorsToResult(result, self._outcome.errors)
        else:  # Python 3.2 - 3.3 or 3.0 - 3.1 and 2.7
            result = getattr(self, '_outcomeForDoCleanups', self._resultForDoCleanups)
        error = self.list2reason(result.errors)
        failure = self.list2reason(result.failures)
        ok = not error and not failure

        # demo:   report short info immediately (not important)
        if not ok:
            typ, text = ('ERROR', error) if error else ('FAIL', failure)
            msg = [x for x in text.split('\n')[1:] if not x.startswith(' ')]    [0]
            print("\n%s: %s\n     %s" % (typ, self.id(), msg))

    def list2reason(self, exc_list):
        if exc_list and exc_list[-1][0] is self:
            return exc_list[-1][1]

    # DEMO tests
    def test_success(self):
        self.assertEqual(1, 1)

    def test_fail(self):
        self.assertEqual(2, 1)

    def test_error(self):
        self.assertEqual(1 / 0, 1)
...