首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >种子伞项目(Ecto/Postgre)

种子伞项目(Ecto/Postgre)
EN

Stack Overflow用户
提问于 2018-04-21 22:44:55
回答 2查看 344关注 0票数 1

我目前有一个包含数据库服务的伞式项目。当我运行mix test命令时,我想自动启动这个服务,但我不能。

我试图将以下代码放入apps/db_service/mix.ex

代码语言:javascript
复制
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

代码语言:javascript
复制
defp aliases do
    [
        "test": ["ecto.drop", "ecto.create", "ecto.migrate", "test"]
    ]
end

并进入apps/db_service/mix.ex

代码语言:javascript
复制
defp aliases do
    [
        "test": ["run priv/repo/seeds.exs", "test"]
    ]
end

但是现在,我得到了以下错误:** (Mix) No such file: priv/repo/seeds.exs

如何进行种子测试,并让mix test命令在根和服务文件夹中工作?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-16 01:57:48

这是一个迟来的答复,但它在这里:

代码语言:javascript
复制
defp aliases do
  "test.seed": ["run #{Path.join(__DIR__, "priv/repo/seeds.exs")}"],
  test: ["test.seed", "test"]
end

这一反应上取材。

票数 1
EN

Stack Overflow用户

发布于 2018-04-23 18:24:00

当您必须执行mix test时,请使用MIX_ENV=test mix test。为了在测试数据库中运行任务,我们需要指定环境,因为要创建测试env单独的DB。

因此,请使用MIX_ENV=test,然后使用命令,以便在测试数据库上运行任务。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49960827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档