没病不会死人
单元测试,经验2016-08-09
有时候,做代码的单元测试的时候,可能会发生一些诡异的事情。想破脑袋都搞不清楚是怎么回事。一般遇到这种情况,我首先想到的是”没病不会死人”,出现问题,肯定有它发生的原因。
解决这种问题,一靠经验,二靠运气,三靠细心。
有经验的人,可能曾经遇到相似的问题,举一反三,很快就能找到问题所在。
有的时候,也需要一点运气,或者说是灵感。很长时间没有头绪的问题,可能在某一个时间点就能想到问题的解决方法。
有时候,可能是自己的粗心,才导致没有发现问题出在哪里。
举一个例子,在windows环境正常运行的系统,迁移到新的linux云平台的时候。有一些功能都能正常使用,其中一个模块无法使用。查看日志发现有异常发生:
Table ‘ssmp.SSMP_APP_SYS’ doesn’t exist
其他模块都正常,说明数据库连接是没有问题的。为什么唯独这个表无法找到。想了半天才明白为什么,因为mysql数据库表名大小写敏感问题。
windows安装mysql,默认表名是大小写不敏感的。所以很多人都忽略了这个问题。当部署在linux环境的话,如果不注意表名大小写,很容易出问题。
当然我们可以设置mysql,库名和表名大小写不敏感。
可以设置mysql启动参数配置文件my.cnf
lower_case_table_names = 1
0:敏感
1:不敏感
windows 缺省1
linux上 缺省0
然后重启mysql服务,问题解决!
service mysqld restart