本地环境可以跑通,但只要一上机器人环境,便会出现错误。一般这种情况都是由于本地与travis
的JDK
版本不一致造成的。然而,机器人又有日志大粘限制,这就决定了,我们不可能将日志等级开启到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!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。