PyTestReport詳細:
https://testerhome.com/opensource_projects/78
サンプルコード
#のコーディング:UTF-8 をインポートOS、ユニットテスト、時間、HTMLTestRunner、したりするsmtplib から email.mime.multipart インポートのMimeMultipart から email.mime.text インポートします:MIMEText から設定をインポートreadconfig から pytestreport インポートテストランナー #インポートHTMLTestRunner_jpg #trueに現在のスクリプトファイルのパス = os.path.dirname cur_path(os.path.realpath(__FILE__ )) プリント(cur_path) #1 (タイプ(cur_path)の)印刷 #1 ステップ1:負荷方法には、すべてのテストケースを発見 DEF(caseName =をadd_case「ケース」、ルールは= 「テスト*のの.py 」): 「」「:すべてのテストケースロードの最初のステップ「」」 case_path = os.path.join(cur_path、caseName) #ユースケースフォルダ #をこれが存在しない場合をケースフォルダは、それが自動的に作成されます IF ないos.mkdir(case_path):os.path.exists(case_path) 印刷(" \ 033 [31mtestケースパス:033 [0メートル%S \ "%のcase_path) #定義の方法を発見しますパラメータ を発見= unittest.defaultTestLoader.discover(case_path、 パターン =ルール、 top_level_dir = なし) 印刷(発見) を返す発見の #のステップを:HTMLレポート生成 DEFの run_case(all_case、REPORTNAME = 「レポート」): 「」 ' すべてのユースケースの実装、およびテスト用のHTMLレポートに結果を書き込みます:2ステップ'' ' 今 = time.strftime(" %Y_%M _ %% D_ H_%M_%S " ) report_path = os.path.join(cur_path、REPORTNAME) #の テストレポートフォルダ #フォルダは、このレポートに存在しない場合、自動的に作成 IF ないos.mkdir(report_path):os.path.exists(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 [0メートル%S "%のreport_abspath) FP =オープン(report_abspath、" WB 」) #1 PyTestReportテストレポート を開きます(report_abspathと、' WB ' FP AS): ランナー = テストランナー(FP、 タイトル = 「テストのタイトル」、 説明 = 「テストの説明」、 冗長 = 2 ) #は機能を追加するために呼び出して、値を返します runner.run(all_case) #の最新のテストレポートを取得:ステップ3 DEF (report_pathをget_report_fileを): 「」 ' 第三段階を:最新を取得します。試験報告書'' ' リスト = os.listdir(report_path) lists.sort(キー = ラムダのFn:os.path.getmtime(os.path.join(report_path、FN))) 印刷(U ' 最新のテストレポートの生成:' +リスト[-1 ]) #最新のテストレポートファイルを検索し、生成 REPORT_FILE = os.path.join(report_path、リスト[-1 ]) リターンREPORT_FILE #のステップ4:メールボックスにテストレポートを送信 DEFのsend_mailを(SENDER、PSW、レシーバー、SmtpServerは、REPORT_FILE、ポート) : '' ' 4ステップ:最新のテストレポートを送信する' '' オープン(REPORT_FILE、と" RB " :F AS) mail_body = f.read() #は、メッセージ内容を定義 MSGを= のMimeMultipart() 体 =ます:MIMEText(mail_body 、_subtype = ' HTML '、_CHARSETというが= ' UTF-8 ' ) MSG [ '主題' ] = ' 自动化测试报告' MSG [ " から" ] = 送信元 MSG [ " に" ] = レシーバ msg.attach(本体) #添加附件 ATT =ます:MIMEText(オープン(REPORT_FILE、" RB ")().readを" BASE64 "、" UTF-8 " ) ATT [ " のContent-Type " = " アプリケーション/オクテットストリーム" ATT [ " コンテンツの廃棄"] = "添付ファイル; ファイル名= "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実施例 #最新のテストレポートファイル取得 = os.path.join(cur_path、report_pathを" 報告") #例フォルダと REPORT_FILE = get_report_file(report_path) 位。3最新情報を得るためにテストレポート #のメールボックスの設定 SENDER = readConfig.sender PSW = readConfig.psw SMTP_SERVER = readConfig.smtp_server ポート = readConfig.port レシーバー = readConfig.receiver # send_mail(差出人、PSW、受信機、SMTP_SERVER、REPORT_FILE、ポート)#4レポートを送信するための最終ステップ
生成されたテストレポート