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

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

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

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

思路

最科學的辦法

統一本地與機器人的版本了。
但:雖然版本統一了,但操做系統又很難統一。再結合開發環境與生產環境的不一樣,咱們很難作到全部的環境徹底統一。github

曲線救國

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

方法

配置文件支持

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

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!this

相關文章
相關標籤/搜索