Как очистить тестовую БД после ** всех ** испытаний? - PullRequest
1 голос
/ 01 июля 2019

У меня есть модуль тестов, которые запускаются синхронизированными один за другим.
Я хотел бы очистить все изменения, сделанные на БД, тестами после завершения всех тестов, т.е. я хочуданные для сохранения в БД между тестами.
Мое приложение использует базу данных PostgreSQL (MyRepo).
, когда я использую Ecto.Adapters.SQL.Sandbox.checkout(MyRepo) в функции setup_all, после каждого теста БД очищается.
Это мой condig/test.exs файл:

config :my_repo, MyRepo,
       pool: Ecto.Adapters.SQL.Sandbox,
       database: "my-repo-test",
       username: "postgres",
       password: "postgres",
       hostname: "localhost",
       port:     "5432",
       pool_size: 1,
       max_overflow: 0,

Как правильно это сделать?

1 Ответ

2 голосов
/ 01 июля 2019

Вы можете использовать ExUnit.Callbacks.on_exit/2:

setup_all do
  on_exit fn -> Repo.cleanup() end
end
...