testit-tms / adapters-python

Apache License 2.0
11 stars 12 forks source link

Перезапущенный зелёный тест имеет stacktrace из упавшего #60

Open romansvesh opened 1 year ago

romansvesh commented 1 year ago

Предусловия: testit-adapter-pytest==2.1.3 pytest-rerunfailures==10.2

Шаги:

  1. Запустить тест с --testit --tmsUrl=https://example.com --tmsProjectId=123 --tmsConfigurationId=456--tmsAdapterMode=2 --tmsCertValidation=false --reruns=1
  2. Тест упал
  3. Тест перезапустился
  4. Тест прошёл успешно

Ожидаемый результат: В тестране 2 записи:

Фактический результат: В тестране 2 записи:

testit_adapter_pytest/listener.py:153 ` @pytest.hookimpl def pytest_runtest_logreport(self, report):

...

        if report.failed or hasattr(report, 'wasxfail') \
                and not report.passed or report.outcome == 'rerun':
            self.__executable_test['outcome'] = STATUS.get('failed', None)

            if report.longreprtext:
                self.__executable_test['traces'] = report.longreprtext

`

Тут если условие не выполняется (то есть тест зелёный), нужно чистить self.__executable_test['traces']. То есть мне помогало добавить внизу приведённого кода (на первый if):

else: self.__executable_test['traces'] = None

PS: ещё почему-то к зелёному тесту прикрепляются файлы от упавшего теста. Но клиент вроде как запрос на отправку файлов не делает, так что полагаю что это проблема на сервере. Если кто знает куда писать, скажите, плз

TatianaKlimova91 commented 1 year ago

Пришлите, пожалуйста, пример теста нам на почту: https://support.yoonion.ru/hc/ru, посмотрим, что может быть не так.

romansvesh commented 1 year ago

Похоже, что проблема в том, что мы используем pytest адаптер для pytest-bdd.