背景
單元測(cè)試的時(shí)候用go test執(zhí)行包下所有的測(cè)試文件時(shí),編譯失敗,控制臺(tái)輸出一大堆prinf format錯(cuò)誤,有參數(shù)類型不匹配的,有參數(shù)個(gè)數(shù)不匹配的。但是在同事的電腦上跑就不出錯(cuò)。后來懷疑是golang版本的問題,我在docker容器中將golang升級(jí)到1.12.7了,后來編輯了一下Dockerfile把go版本換成1.10然后重構(gòu)一下鏡像就行了。
解決方法
檢查golang版本是否太高了,高版本的golang對(duì)格式化輸出更加嚴(yán)格,如果是低版本的golang寫的項(xiàng)目,編譯整個(gè)項(xiàng)目的時(shí)候并不報(bào)錯(cuò),運(yùn)行單個(gè)包時(shí)可能會(huì)報(bào)這樣的錯(cuò)誤。要么就全部改成標(biāo)準(zhǔn)的format輸出,要么降級(jí)golang版本。