2

我正在对 python 脚本进行单元测试,并希望在一个月的不同日子模拟脚本的运行。

有没有办法设置从命令行启动脚本时的日期/时间?

我无权更改系统日期/时间,并且不希望使用我想要测试的日期来破解脚本。

干杯,多纳尔

4

3 回答 3

6

刚刚找到解决方案,使用一个名为 faketime 的 linux 工具。

[10:45:03] $ faketime '2008-12-24 08:15:42' /bin/date
Wed Dec 24 08:15:42 GMT 2008
于 2013-09-24T09:50:10.670 回答
1

您可能会通过一些 LD_PRELOAD 技巧来实现这一点,但在我看来,更清洁的解决方案是模拟 datetime.date 类。有关更多详细信息,您可以查看此问题的答案

于 2013-09-24T09:56:34.207 回答
0

我不认为有一种方法可以直接在 shell 中设置日期/时间,以便系统时间不变,但对于子 shell 不同

但是有两种解决方案

1)对于一组有限的不同时间,您可以使用 TZ,例如

TZ="GMT+6" date

2)在像Virtualbox这样的VM中运行python程序并设置系统时间。在虚拟机中!

于 2013-09-24T09:50:55.683 回答