3

所以,我是 Elixir 和 Phoenix 的新手。我做了一个hello world应用程序。关注了一个人的博客应用程序。遵循 Phoenix 框架的初始步骤。到目前为止,一切都很好。

然而,今晚,我有一些新东西。

每次我运行混合测试时,我都会得到以下信息:

hail2skins@elixir:~/workspace/phoenix/test_blog $ mix test
** (ArgumentError) argument error
   :erlang.exit(nil, :normal)
   (ecto) lib/ecto/adapters/postgres.ex:55: Ecto.Adapters.Postgres.stop/2
   (ecto) lib/mix/ecto.ex:75: Mix.Ecto.ensure_stopped/2
   test/test_helper.exs:4: (file)
   (elixir) lib/code.ex:307: Code.require_file/2

现在,我可以在不同文件夹中同一服务器上的另一个应用程序中运行混合测试。

我为此应用安装了 Phoenix 1.03。但我确实在我运行的另一个应用程序中看到了 Phoenix 1.02。无论如何,我删除了应用程序,构建了一个新的简单应用程序,按照说明运行 mix ecto.create,然后我立即尝试混合测试,但它失败了。每次我尝试一个新的应用程序都会失败。这是我的配置问题吗?我正在使用 Cloud 9,正如我所说,在其他应用程序上一切似乎都很好,甚至这个加载正确。

或者这是以前从未见过的某种新事物?

如果不同文件夹中同一个盒子上的另一个应用程序也失败了,那我的困惑会更少。但是当我运行混合测试时它工作正常。没有新的应用程序有效。

4

1 回答 1

2

看起来这是 ecto 版本 1.0.5 中的错误。我将该行添加{:ecto, "== 1.0.4"}到我的 mix.exs 文件的依赖项中,删除了 deps 和 _build,它解决了这个问题。我想这会很快得到解决,但坚持使用 ecto 1.0.4 将在此之前解决问题。

于 2015-10-17T06:08:42.800 回答