我正在对 python 脚本进行单元测试,并希望在一个月的不同日子模拟脚本的运行。
有没有办法设置从命令行启动脚本时的日期/时间?
我无权更改系统日期/时间,并且不希望使用我想要测试的日期来破解脚本。
干杯,多纳尔
刚刚找到解决方案,使用一个名为 faketime 的 linux 工具。
[10:45:03] $ faketime '2008-12-24 08:15:42' /bin/date
Wed Dec 24 08:15:42 GMT 2008
您可能会通过一些 LD_PRELOAD 技巧来实现这一点,但在我看来,更清洁的解决方案是模拟 datetime.date 类。有关更多详细信息,您可以查看此问题的答案
我不认为有一种方法可以直接在 shell 中设置日期/时间,以便系统时间不变,但对于子 shell 不同
但是有两种解决方案
1)对于一组有限的不同时间,您可以使用 TZ,例如
TZ="GMT+6" date
2)在像Virtualbox这样的VM中运行python程序并设置系统时间。在虚拟机中!