将 wallaby 添加到我的 Elixir/Phoenix 项目时无法编译依赖项 :mimerl

Could not compile dependency :mimerl when adding wallaby to my Elixir/Phoenix project

我是 Elixir/Phoenix 的新手,我现在想使用 Wallaby(或 Hound,但这是同一个问题)编写测试。

供您参考,我使用的是 Docker 图片。

我正在尝试让 Cabbage and Wallaby 工作,但是一旦我将 Wallaby 依赖项添加到我的项目中:

...
  defp deps do
    {:phoenix, "~> 1.3.0"},
    ...
    {:cowboy, "~> 1.0"},
    {:wallaby, "~> 0.19.2"}
  end
...

然后我在 运行 mix test:

时出现以下错误
escript: exception error: no match of right hand side value undefined
  in function  rebar_log:log/3 (/home/tristan/Devel/rebar3/_build/default/lib/rebar/src/rebar_log.erl, line 94)
  in call from rebar3:handle_error/1 (/home/tristan/Devel/rebar3/_build/default/lib/rebar/src/rebar3.erl, line 325)
  in call from escript:run/2 (escript.erl, line 759)
  in call from escript:start/1 (escript.erl, line 277)
  in call from init:start_em/1
  in call from init:do_boot/3
** (Mix) Could not compile dependency :mimerl, "/root/.mix/rebar3 bare compile --paths "/application/_build/test/lib/*/ebin"" command failed. You can recompile this dependency with "mix deps.compile mimerl", update it with "mix deps.update mimerl" or clean it with "mix deps.clean mimerl"

有人知道我为什么会出现此错误以及我该如何解决它吗?

您可以添加 ,仅在依赖版本之后添加::test 并尝试 运行 mix deps.get 之前 运行 混合测试

我终于弄清楚是什么导致了这个问题:代理!

我第一次尝试手动 运行 这个 rebar3 过程:

docker run --rm -it <container-name> /root/.mix/rebar3

而且我已经遇到了错误。 在容器中四处游玩,我发现删除代理使进程不再通过任何错误。

所以,不管 Docker,都是关于取消设置我机器的公司代理,以便让它通过 public 网络工作。