0
我正在构建一个小型Flask应用程序,每隔一个月运行一次,每隔一段时间运行一次。我为此使用了apschduler
。有没有办法为此设置测试?我正在使用py.test。使用Python/Flask测试计划任务
喜欢的东西:
def test_cron(self, app):
wait(months=1)
assert cron_has_run
有什么建议?
我正在构建一个小型Flask应用程序,每隔一个月运行一次,每隔一段时间运行一次。我为此使用了apschduler
。有没有办法为此设置测试?我正在使用py.test。使用Python/Flask测试计划任务
喜欢的东西:
def test_cron(self, app):
wait(months=1)
assert cron_has_run
有什么建议?
您不应该需要测试该作业实际运行,因为该工作由apscheduler处理,该工作已经过测试。相反,测试任务本身并测试您是否按预期安排。
您可以使用get_jobs
检查计划的作业。如果你想测试你是否正确安排了一项工作,安排它,然后在列表中找到它的工作。例如,您可以测试next_run_time
是否为一个月。
for job in get_jobs():
if name != 'name of job you care about':
continue
assert job.next_run_time >= datetime.utcnow() + timedelta(days=30)
assert job.next_run_time <= datetime.utcnow() + timedelta(days=32)
如果你有兴趣在如何apscheduler测试它的调度程序,你可以看一下代码:https://github.com/agronholm/apscheduler/blob/master/tests/test_schedulers.py。它在过去使用模拟和日期。
测试任务,而不是apscheduler。 apscheduler已经过测试,您可以依靠它来实际安排事情。 – davidism
但我想测试一下,我使用apscheduler正确设置了任务。我的标准实际上比每月简单运行更复杂,是否没有办法测试? – cyniphile