我使用 gitlab-ci 来运行我的测试套件,在一个测试中我想模拟一个 更改系统日期(例如,转到后一天)以查看是否 一切都按预期工作,例如:
- redis 键被删除(TTL)
- 有些文件自更改日期起使用新的“运行编号”写入
- 日期和时间计算正常
- ...
我如何模拟系统日期/时间的变化以进行单元测试?
编辑:由于我的代码库是用 Python 编写的,所以我找到了 freezegun和 python-libfatketime ;前者可能对我的 Python 代码有用,后者更强大,因为它拦截系统调用,所以理论上我可以用它来测试 redis TTL,如果我在应用补丁后启动 redis。
最佳答案
您可以覆盖 gettimeofday
和 clock_gettime
以在您想要的任何时间返回。但是,这不会影响具有超时的 pthread 等待函数。
关于linux - 如何模拟系统日期/时间的变化以进行测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54949547/