Как включить скриншоты в отчет HTMLTestRunner? - PullRequest
0 голосов
/ 07 января 2020

Я использую Python / Selenium / unittest / HTMLTestRunner

Я хотел бы включить скриншот в каждый тест, который не прошел тестовый набор.

При этом он запускает набор тестов и создайте отчет

h = HTMLTestRunner(template="tests/reports/template/report_template.html", combine_reports=True, report_name="MyReport", add_timestamp=True).run(suite)

Здесь tearDown создайте скриншот и закройте тест. Если набор содержит больше тестов, то новый браузер открывается и продолжается со следующими шагами тестирования, а в конце снова создайте скриншот и закройте его и так до последнего теста.

@classmethod
def tearDown(cls):
now = datetime.now().strftime('%Y-%m-%d_%H-%M-%S')
cls.driver.get_screenshot_as_file('reports/screenshot-%s.png' % now)
cls.driver.quit()

Как я могу сделать правильный скриншот и поставить его в тестируемом отчете, который создал этот скриншот?

1 Ответ

1 голос
/ 27 апреля 2020

Я тоже столкнулся с той же проблемой, и вот мой подход, основанный на этом .

В tearDown,

@classmethod
def tearDown(cls):
     for method, error in self.outcome.errors:
          if error: # Screenshot will be taken if there's an error raised
               now = datetime.now().strftime('%Y-%m-%d_%H-%M-%S')
               name = 'reports/screenshot-%s.png' % now
               cls.driver.get_screenshot_as_file(name)
               print(name)

     cls.driver.quit()

Тогда в вашем report_template.html который я предполагаю на основе этого шаблона , внесите некоторые изменения в этот HTML код.

{%- if (test_case.stdout or test_case.err or test_case.err) and test_case.outcome != test_case.SKIP %}
<tr style="display:none;">
 <td class="col-xs-9" colspan="3">
   {%- if test_case.err %}<p style="color:maroon;">{{ test_case.err[0].__name__ }}: {{ test_case.err[1] }}</p>{% endif %}
   {%- if test_case.err %}<p style="color:maroon;">{{ test_case.test_exception_info }}</p>{% endif %}
   {%- if test_case.stdout %}<p>{{ test_case.stdout }}</p>{% endif %}
   <img src="your path to the image here" />
  </td>
 </tr>
{%- endif %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...