использование PyTestReport

PyTestReport Детали:

https://testerhome.com/opensource_projects/78

 

Пример кода

# Coding: UTF-8 
Импорт ОС, UnitTest, время, HTMLTestRunner, smtplib
 от email.mime.multipart Импорт MimeMultipart
 из email.mime.text Импорт MimeText
 от конфигурации Импорт readconfig
 из pytestreport Импорт TestRunner
 # Импорт HTMLTestRunner_jpg 


# текущий путь к файлу сценария к истинным 
= os.path.dirname cur_path (os.path.realpath ( __FILE__ ))
 Печать (cur_path)
 # Печать (типа (cur_path)) 


# Шаг первый: метод загрузки с обнаружить все тестовые примеры 
DEF add_case (caseName =" Дело " , правило = " Тест * .py " ):
     '' ' Первый шаг: загрузка всех тестовых случаев ' '' 
    case_path = os.path.join (cur_path, caseName) # Use Case папки 
    # Если это не существует случай папки, он автоматически создает 
    IF  не os.path.exists (case_path): os.mkdir (case_path)
     Print ( " \ 033 [31mtest случае путь: \ 033 [0m% S " % case_path) 

    # определены обнаружить методы параметр 
    Откройте = unittest.defaultTestLoader.discover (case_path, 
                                                   шаблон = правило,
                                                   top_level_dir = None) 




    Печать (Discover)
     вернуться Discover 


# Шаг: HTML генерации отчетов 
DEF run_case (all_case, в REPORTNAME = « Отчет » ):
     «» ' Шаг два: выполнение всех случаев использования, и записывает результат в HTML - отчете об испытаниях '' ' 
    теперь = time.strftime ( " % y_% м _ %% D_ Н-% m_% S " ) 
    report_path = os.path.join (cur_path, REPORTNAME) #  папка Протокол испытаний 

    # Если папка не существует в настоящем докладе, автоматически создавать 
    IF  не os.path.exists (report_path): os.mkdir (report_path)
     #= Os.path.join report_abspath (report_path, теперь + "и result.html") 


    # с именем протокола испытаний Дженкинс сгенерированной неподвижным и result.html 
    report_abspath = в os.path.join (report_path, " и result.html " ) 



    Печать ( " \ 033 [31mreport путь: \ 033 [0m% S " % report_abspath) 

    FP = Open (report_abspath, " WB " ) 


    # Протокол испытаний PyTestReport 
    с Open (report_abspath, ' WB ' ) AS FP: 
        Runner = TestRunner (FP, 
                            название = « тест название », 
                            The Описание = ' Описание теста ' , 
                            многословие = 2 
                            ) 
        # требует , чтобы добавить функция возвращает значение 
        runner.run (all_case) 



# Шаг третий: Получите самое последнее испытание сообщает 
DEF get_report_file (report_path):
     '' ' Третий шаг: получить последние Протокол испытаний '' ' 
    Списки = в os.listdir (report_path) 
    lists.sort (Key = лямбда Fn: os.path.getmtime (в os.path.join (report_path, Fn)))
     Print (U ' последнего поколения Протокол испытаний: ' + Списки [-1 ]) 

    #Найти последнюю версию файла отчета тест генерируется 
    report_file = os.path.join (report_path, списки [-1 ])
     возвращение report_file 


# Шаг четвертый: Отправить тест на почтовый ящик 
DEF send_mail (Sender, PSW, приемник, SMTPServer, report_file, порт) :
     '' ' шаг четыре: отправить последний тест ' '' 
    с Open (файл_отчетом, " гь " ) AS F: 
        mail_body = f.read () 

    # определить содержательные 
    Сообщи = MimeMultipart () 
    тела = MimeText (mail_body , _subtype = ' HTML ' , _CHARSET = ' UTF - 8 . ' ) 
    МСГ [ 'Предмет' ] = ' 自动化测试报告' 
    Сообщ [ " от " ] = отправителя 
    MSG [ " к " ] = приемник 
    msg.attach (корпус) 

    # 添加附件 
    Att = MimeText (открытое (файл_отчета, " RB " ) .read (), " base64 " , " UTF-8 " ) 
    Att [ " Content-Type " ] = " приложения / октет-поток " 
    Att [ " Content-Disposition "] = 'присоединение; имя файла = "report.html" ' 
    msg.attach (ATT) 

    попробуйте : 
        SMTP = smtplib.SMTP_SSL (SMTPServer, порт)
     , за исключением : 
        SMTP = smtplib.SMTP () 
        smtp.connect (SMTPServer, порт) 

    # 用户名密码
    smtp.login (отправитель, PSW) 
    smtp.sendmail (отправитель, получатель, msg.as_string ()) 
    smtp.quit () 
    печать ( ' отчет тестовое письмо имеет разослать! ' ) , 

если  __name__ == " __main__ " : 
    all_case = add_case ()   # 1加载用例
    # Тестовый путь формирования отчетов 
    run_case (all_case)   # 2 Пример выполнения 
    # получить последний отчет тестовый файл 
    report_path = в os.path.join (cur_path, " Отчет " )   # с Пример папки 
    файл_отчета = get_report_file (report_path)    # . 3 , чтобы получить последний Протокол испытаний 

    # почтовый ящик конфигурации 
    ОТПРАВИТЕЛЬ = readConfig.sender 
    PSW = readConfig.psw 
    smtp_server = readConfig.smtp_server 
    Порт = readConfig.port 
    приемник = readConfig.receiver
     # send_mail (отправитель, PSW, приемник, smtp_server, report_file, порт) # 4 Заключительный шаг, чтобы отправить отчет

 

 

Сгенерированный отчет об испытаниях

 

рекомендация

отwww.cnblogs.com/yrxns/p/11353663.html