Здравствуйте, уважаемое сообщество!
У меня следующий вопрос: есть несколько автоттестов. Если они находят ошибку, то делают скрин экрана. С этим всё ясно, но можно ли по средствам jenkins или как-то ещё организовать отправку их (скринов) на почту вместе с отчетами о не успешном прохождении тестов? Сами письма с отчетами из jenkins уходят, но представляют из себя лишь программные логи ошибок и пользователям не удобно анализировать где именно произошло падение.
Спасибо заранее за ответ!
Один из вариантов:
Поставить плагин Email Extension Plugin.
И в джобе настроить отправку определенных файлов - поле “Attachments”.
Can use wildcards like ‘module/dist/**/*.zip’. See the @includes of Ant fileset for the exact format. The base directory is the workspace.
FileSet Type - формат
Такой вариант, конечно, не плох, но ведь изначально эти вложения необходимо как-то генерировать? Нашел интересный случай для генерации, но почему-то в директории с кейсами не появляется нужный файл отчета:
if __name__ == '__main__':
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(ASeleniumLogin_1))
# File
dir = os.getcwd()
dateTimeStamp = time.strftime('%Y%m%d_%H_%M_%S')
buf = open(dir+"TestReport" + "_" + dateTimeStamp + ".html", 'wb')
runner = HTMLTestRunner.HTMLTestRunner(
stream=buf,
title='Test the Report',
description='Result of tests'
)
runner.run(suite)
unittest.main()
Нашел ещё более просто пример для генерации отчетов:
import unittest
import xmlrunner
class TestFunctions(unittest.TestCase):
def test_test1(self):
pass
def test_test2(self):
pass
if __name__ == '__main__':
unittest.main(testRunner=xmlrunner.XMLTestRunner(output='C:/PyTest/TestReport.html'))
Но опять сталкиваюсь с той же проблемой - в папке не появляется файл с отчетом. Помогите, пожалуйста, разобраться, в чем тут дело?
Вы написал в первом посте так:
Если они находят ошибку, то делают скрин экрана. С этим всё ясно, но можно ли по средствам jenkins или как-то ещё организовать отправку их (скринов) на почту вместе с отчетами о не успешном прохождении тестов?
Я логично сделал вывод, что со скринами и отчетами все ок, но осталось организовать отправку.
Пишите точнее, что вы хотите.
Вариант у вас должен быть таким:
- генерите всегда отчет о прохождении теста (например, этой тулзой: HTMLTestRunner - tungwaiyip's software)
- если билд падает, то высылайте об этом событии письмом, как это сделать - написал выше.
HTMLTestRunner не работает. Перепробовал всё, но в папке файл с отчетом после прохождения теста не появился
buf = open(dir+"TestReport" + "_" + dateTimeStamp + ".html", 'wb')
если заменить на
buf = open("TestReport.html", 'wb')
А вот это - убрать:
unittest.main()
Появится файл?
Нет, не появился. И такой вариант я тоже уже пробовал.
Это странно, так как:
buf = open("TestReport.html", 'wb')
уже должен был создать пустой файл.
Весьма. Есть 2 предположения:
- Я работаю не под админом. Может быть из-за этого программа и не может создать файл, т.к. у нее нет достаточно прав? (хотя, сам я файл создаю, так что может и это не верное предположение)
- Ранее в самом HTMLTestRunner.py была изменена строка: from io import StringIO, в соответствии с рекомендациями в этом комментарии к похожей проблеме. Теперь в самом теле HTMLTestRunner.py наблюдаются вот такие фрагменты:
Может корень проблемы в этом?
Да, очевидно, что-то в этом есть, т.к. после запуска из консоли, файл, таки, создал (пустой, правда), но выдал огромное множество ошибок в файле HTMLTestRunner
Проблема решилась путем частичного изменения файла HTMLTestRunner.py ввиду того, что я использую Python 3.5.1
Спасибо за советы и уделенное время!
Впредь, буду внимательнее!