本地測試沒問題,機器人測試錯誤的簡單規避辦法

本地環境可以跑通,但只要一上機器人環境,便會出現錯誤。一般這種情況都是由於本地與travisJDK版本不一致造成的。然而,機器人又有日誌大粘限制,這就決定了,我們不可能將日誌等級開啓到debug來調試錯誤。

思索:是否可以使用日誌插件,將日誌保存爲文件,然後將文件回傳到我們的服務器,再然後查看問題所在呢?

有沒有辦法來規避這一情況呢?

思路

最科學的辦法

統一本地與機器人的版本了。
但:雖然版本統一了,但操作系統又很難統一。再結合開發環境與生產環境的不同,我們很難做到所有的環境完全統一。

曲線救國

既然只有機器人報錯,那麼本地測試好後,可以考慮將機器人報錯的部分做排除。雖然這不是最好的方法,但在時間寶貴的前提下(機器人10分鐘測試跑一次,改一次再測試10分鐘,改了6次,就要等1小時),也只能如此了。

方法

配置文件支持

將機器人環境統一寫到配置文件的某profiles中,然後命名:travis,並在啓用機器人測試時,啓用該命名:

spring:
  profiles:
#  開發過程中,請將 travis 修改爲 test
    active: ${active:test}

測試文件中,注入該值,並做排除

    
    @Value("${spring.profiles.active}")
    private String active;
    
    public void test() {
         if (!this.active.equals("travis")) {
             // 機器人中報錯的代碼
         }
    }

總結

生產環境、測試環境、開發環境的不一致問題,會帶來一定的困擾,而且一旦發生問題,比如生產環境中發現問題,由於缺少中斷環境,則會在排錯時浪費大量的時間。

travis雖然好用,但卻不能自己定義具體的JDK信息(它的JDK就那幾種,比如ORACLE-JDK8就一個),打造自己的單元測試服務器迫在眉睫。

構想:
開發環境(不限)、測試環境同生產環境(OPENJDK)。由於openjdk可以安裝到Linux系統中,一旦開發環境(非liunx)與測試環境表現不一致,則可以切到liunx系統中來進行問題的調試。

學習機器人自動生成的shell,建立自己的shell。同時,開發一個小應用,來對接github。接收到github信息後,檢出相應的分支,執行單元測試,並將測試的結果推送給github

help

I need help! Thank you!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章