私は現在、Task
を監督しているSupervisor
を持っています。タスクは、非同期に電子メールを送信し、データベースを更新する役割を担います。私はタスクがテストと無関係ですが、これらのタスクを開始する関数をテストしています。テスト中に問題を引き起こすタスク
私がテストを実行すると、Ecto.StaleEntryError
がSTDOUTで表示されています。テストが終了した後、タスクが実行される前にEctoがレコードを削除するので、これは起こっていると私は信じています。レコードを更新しようとすると存在しないため、Ecto.StaleEntryError
が発生します。
補足として、テストは失敗しません。スタックトレースのみを出力します。
タスクを何らかの形で実行しないようにするか、別の方法があるかどうかはわかりません。
スーパーバイザーと何が関係しているのか分かりません。スーパーバイザを実際に起動しなくても、ただ1つのスーパーバイザ機能をテストしようとしていますか? – Tyler
私はテストに無関係なタスクを実行しないようにしたいのですが、テスト出力にスタックトレースを投げています。スーパーバイザーが実行されてタスクが実行されないようにする方法があると思いました。私はこれが正しいアプローチであるかどうかわからないし、もしそれがどうなるかわからないのであれば。 – anthonator