所以,我是 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,然后我立即尝试 mix test 并且它失败了。每次我尝试一个新的应用程序时都会失败。这是我的配置问题吗?我正在使用 Cloud 9,正如我所说,在其他应用程序上一切似乎都很好,甚至这个应用程序也能正确加载。

或者这是某种从未有人见过的新事物?

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

最佳答案

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

关于elixir - Phoenix 框架 : mix test fails with argumenterror on new app,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33181775/

10-13 05:23