問題
コルーチンでasyncio.ensure_future
を使用する場合、詳細な関数トレース情報は表示されません。
解決
ensure_future
から作成された Future は、作成されたのと同じコルーチンで待機する必要があります。 たとえば、 Beforeセクションでは、 await
がensure_future
と共に存在しないため、情報が欠落することになります。
前です。
import asyncio
async def foo(): ensure_future(bar())
async def bar(): await asyncio.sleep(0.5)
後です。
import asyncio
async def foo(): await ensure_future(bar())
async def bar(): await asyncio.sleep(0.5)