我目前有一个包含数据库服务的伞式项目。当我运行mix test命令时,我想自动启动这个服务,但我不能。
我试图将以下代码放入apps/db_service/mix.ex
defp aliases do
[
"ecto.setup": ["ecto.create --quiet", "ecto.migrate", "run priv/repo/seeds.exs"],
"ecto.reset": ["ecto.drop", "ecto.setup"],
"test": ["ecto.reset", "test"]
]
end但是,如果在根目录上运行mix test,则会出现一个错误:** (Mix) The database for DatabaseService.Repo couldn't be dropped: ERROR 55006 (object_in_use) (命令正在进入服务目录)
所以我试着加入root/mix.ex
defp aliases do
[
"test": ["ecto.drop", "ecto.create", "ecto.migrate", "test"]
]
end并进入apps/db_service/mix.ex
defp aliases do
[
"test": ["run priv/repo/seeds.exs", "test"]
]
end但是现在,我得到了以下错误:** (Mix) No such file: priv/repo/seeds.exs
如何进行种子测试,并让mix test命令在根和服务文件夹中工作?
发布于 2019-10-16 01:57:48
这是一个迟来的答复,但它在这里:
defp aliases do
"test.seed": ["run #{Path.join(__DIR__, "priv/repo/seeds.exs")}"],
test: ["test.seed", "test"]
end从这一反应上取材。
发布于 2018-04-23 18:24:00
当您必须执行mix test时,请使用MIX_ENV=test mix test。为了在测试数据库中运行任务,我们需要指定环境,因为要创建测试env单独的DB。
因此,请使用MIX_ENV=test,然后使用命令,以便在测试数据库上运行任务。
https://stackoverflow.com/questions/49960827
复制相似问题