关于如何在我的Phoenix控制器测试中运行this advice调试器,我很高兴关注pry:
require IEx
IEx.pry
添加到所需的行iex -S mix test --trace
但几秒钟后,这个错误总是出现:
16:51:08.108 [error] Postgrex.Protocol (#PID<0.250.0>) disconnected:
** (DBConnection.ConnectionError) owner #PID<0.384.0> timed out because
it owned the connection for longer than 15000ms
如消息所示,此时数据库连接似乎超时,并且调用数据库连接的任何命令都将使用DBConnection.OwnershipError
错误输出。如何告诉我的数据库连接不要超时,以便我可以安静地调试我的测试?
答案 0 :(得分:4)
Ecto.Adapters.SQL.Sandbox FAQ提及此问题,并解释说您可以将:ownership_timeout
设置添加到Repo配置中,以指定数据库连接在超时之前应保持打开的时间。我把我的时间设置为10分钟(仅限测试环境),所以我再也不用考虑它了:
# config.test.exs
config :rumbl, Rumbl.Repo,
# ...other settings...
ownership_timeout: 10 * 60 * 1000 # long timeout so pry sessions don't break
正如所料,我现在可以在pry
中闲逛10分钟,然后才能看到错误。