Я пытаюсь настроить приложение под эгидой, которое будет обрабатывать бизнес-логику. Он использует Ecto для взаимодействия с базой данных. У меня проблемы с настройкой SQL.Sandbox для тестирования. Всякий раз, когда я запускаю тест, я получаю эту ошибку:
$ MIX_ENV=test mix test
** (exit) exited in: GenServer.call(Domain.Repo.Pool, :checkin, 5000)
** (EXIT) no process
(elixir) lib/gen_server.ex:596: GenServer.call/3
lib/ecto/adapters/sql/sandbox.ex:422: Ecto.Adapters.SQL.Sandbox.mode/2
(elixir) lib/code.ex:363: Code.require_file/2
(elixir) lib/enum.ex:651: Enum."-each/2-lists^foreach/1-0-"/2
(elixir) lib/enum.ex:651: Enum.each/2
Мой config.exs выглядит так:
use Mix.Config
config :domain,
ecto_repos: [Domain.Repo]
config :domain, Domain.Repo,
adapter: Ecto.Adapters.Postgres,
pool: Ecto.Adapters.SQL.Sandbox,
username: "postgres",
password: "postgres",
database: "app_test"
Мой test_helper.exs:
ExUnit.start()
Ecto.Adapters.SQL.Sandbox.mode(Domain.Repo, :manual)
setup
тестовых модулей (это делает Phoenix)::ok = Ecto.Adapters.SQL.Sandbox.checkout(Domain.Repo)
. Не могли бы вы попробовать это? - person Dogbert   schedule 18.09.2016setup do :ok = Ecto.Adapters.SQL.Sandbox.checkout(Domain.Repo) end
- person Maciej Szlosarczyk   schedule 18.09.2016Domain.Repo
перед тестами. Если у этого пакета естьApplication
, попробуйте добавитьsupervisor(Domain.Repo, [])
в его список дочерних элементов, в противном случае попробуйте добавитьDomain.Repo.start_link()
послеExUnit.start()
. - person Dogbert   schedule 18.09.2016