背景: Celeryを使用して将来の特定の時間に実行されるタスクをスケジュールするプロジェクトに取り組んでいます。これらのタスクは、ファイナルステートマシンの状態を前方にプッシュします。ここに例があります:DjangoテストDBに接続するCeleryワーカーを実行します。
- 今後のリマインダーは、2日後にユーザーに送信される予定です。それは意志、
- は、そのスケジュールされたタスクは、電子メールが送信され、実行された場合、およびFSMは、次の状態次の状態は、このタスクを実行すると、別の2日間
- で実行するようにリマインダーをスケジュールすることです
- に進んでいますthis SO answer
テストではその技術を使用しての問題が示唆したように、私は現在CELERY_ALWAYS_EAGERを使用してい
...状態
質問:したがって、テスト実行中にdjangoが使用できるセロリセットアップでフルを実行する方法があるかどうかを知りたいと思います。自動的に実行できるのであれば理想的かもしれませんが、手作業でテストするよりも手作業による介入でも良いでしょう。私はテストで休憩を設定し、テストDBに接続するためにセロリの労働者を実行し、djangoテストを続行する場合、何かが可能である可能性が考えています。誰もこれの前に何かを試したことがありますか?
私はDjangoテストランナーを使用しない単体テストを書くことになると思いますメイン(開発)データベースを使用して、手動でセットアップを行い、データを分解します。 – Andres
はい、これはおそらく最も簡単なアプローチです。私は、固定具が実用的でない大きなDBに対してテストを実行するためにこれを行います。 – joshua
これはあなたの問題なのかどうかは分かりませんが、Celery TasksがDjango Middlewareを経由しないため、データベース操作はトランザクションではありません。 これは本当に面白い、奇妙なデータベースの動作 – geekazoid