最近项目测试中又遇到了一个典型问题。
几个case在本地local Windows测试环境下可以通过,但在remove Linux的集成环境中却失效。
调查后显示,由于一处文件名定义在项目实现中和测试框架实现中的大小写不一致,造成这个问题在Windows下文件名大小写不敏感的测试环境中没有暴露出来,而直到转移到集成环境的linux测试环境中由于Linux下文件路径名大小写敏感才暴露。
经验:
1. 提醒开发测试人员注意,项目实现时尽可能按项目文件/路径名的约定保持一致性。
2. 测试框架实现时,做任何字符串匹配判断时,要加预处理的步骤来考虑可能的大小写不一致情况。若不符合预期,则需要暴露问题;若符合预期,则实现时要做预处理来规避这一潜在的non-issue。
3. 这里还暴露出来一个设计问题,开发的实现可以进一步改进,将一致性约定重复的实现提取出来作为公有类供其他实体类来访问。从而避免每个实体类中实现可能造成不一致的情况。