我正在为 Flask 开发 i18n 库 ICU(和 PyICU)的接口。在我的测试套件中,我有一个测试可以检查不同区域设置的输出。我遇到的问题是我的测试在本地通过,而在它们也运行的 TravisCI 实例上,它们失败了。
原因?ICU 的输出在两台机器上明显不同。在一项测试中,我检查了dateformat
使用意大利语语言环境在 Python 上执行 dateformat 的结果:it_IT
. 本地结果是“2010 年 4 月 12 日,15:46:00”。但是在 TravisCI 实例上,它以一种对我来说没有意义的方式进行了更改。看这里:
如您所见,生成的字符串类似,但添加了这些/
s。我不确定为什么会发生这种情况。任何人的想法?
2016 年 10 月 28 日更新
经过大量测试以尝试重现 travis 实例上发生的不同日期格式输出,我无法重现此问题。我尝试了以下方法:
before_install
通过将以下内容添加到脚本中,显式设置 travis 实例的语言环境:sudo locale-gen "en_US.UTF-8"
sudo update-locale
sudo dpkg-reconfigure locales我启动了 Travis Trusty Tahr 机器应该基于的 ec2 实例(请参见此处),并尝试安装所需的一切并运行我的测试。没有错误!
我尝试将我的开发机器语言环境设置为 travis 实例上设置的语言环境。再次,没有错误!.
我尝试了一个不同的语言环境,只是想看看它是否可能与那个特定的语言环境有关,但得到了另一个异常:
因此,此时似乎可能是区域设置以外的其他原因导致输出不正确。