【发布时间】:2017-05-25 04:22:13
【问题描述】:
我的系统有一个应用程序,它启动了几个 GenServer,它们在初始化时会进行一些 dB 调用,从而获得它们自己的连接。
问题在于,在我对已将一些记录插入 dB 的控制器进行测试时,控制器会调用其中一个 GenServer,然后它会执行更多的 dB 查询。但由于是不同的沙盒,所以看不到记录。
我正在寻找一种一般的解决方案,它允许现有的、正在运行的 GenServer 使用与测试相同的沙箱。我将不胜感激任何想法。我尝试在测试设置中的沙盒结帐后立即添加以下内容,但没有帮助:
Ecto.Adapters.SQL.Sandbox.allow(MyApp.Repo, self(), Some.GenServer)
【问题讨论】:
-
您无法异步运行这些测试。
-
测试没有异步运行。
-
其实,现在我也不确定。没有
async: true,但它是否默认为Phoenix.ConnTest?很难找到这方面的信息。 -
那么看不到你的代码,就很难调试了。因为如果测试是同步运行的,它应该可以工作。你的
setup看起来像this 吗? -
减去第 4 行和第 6 行,是的,完全一样。
标签: testing elixir sandbox ecto