我有一个测试模块,它们一个接一个地运行。
我想在所有测试完成后清除由测试对数据库所做的所有更改,即,我希望数据在一个测试与另一个测试之间保持在db中。
我的应用正在使用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,
正确的方法是什么?
答案 0 :(得分:2)
您可以使用ExUnit.Callbacks.on_exit/2
:
setup_all do
on_exit fn -> Repo.cleanup() end
end