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