一個比較難的問題:如何讓 unittest 的報告中錯誤情況有日誌輸出?

醋精測試媛發表於2020-11-24

使用logger封裝logging,設定輸出流為sys.stdout.
當執行unittest suite並生成report時,logger產生的日誌會輸出在下面的console中,但是並不輸出在report中。

首先宣告需求,因為公司希望我在報告中錯誤資訊簡化為一些其他人能看懂業務就能知道的文字,而不是traceback

我的想法是兩份報告,一份給開發,輸出的報告中的錯誤資訊是業務相關的錯誤
一份給測開,是含有traceback的錯誤

測開的不用改
但是如何將報告中輸出的錯誤翻譯成業務相關呢?


?其他人很難看懂

因此,我需要將logger.error中的資訊輸出在報告中,但是不管是sys.stdout還是sys.stderr.都是在控制檯輸出,而report中的輸出流其實是io.StringIO,如何讓report也能輸出部分日誌呢?


這是報告中關於輸出流的程式碼

相關文章