Unit test cases break when elixir version upgraded from 1.7.2 to 1.8.0

Hello,

I am a newbie in Elixir-Phoenix. I have an application where the unit test cases were written using ExUnit and mock 0.3.0. The test cases were working fine with Elixir 1.7.2. However, all the test cases are now breaking when I upgraded Elixir version to 1.8.0 with the following error-
** (ErlangError) Erlang error: {:compile_forms, {:error, [{[], [{:none, :compile, {:crash, :sys_core_fold, {{:case_clause, {:EXIT, {:function_clause, [{:sys_core_fold, :module, [[{:attribute, 1, :file,…

Here are my dependencies for reference-
{:phoenix, “~> 1.3.1”},
{:phoenix_ecto, “~> 3.2”},
{:mariaex, “~> 0.8.4”},
{:gettext, “~> 0.11”},
{:cowboy, “~> 1.0”},
{:credo, “~> 0.9.1”, only: [:dev, :test], runtime: false},
{:mock, “~> 0.3.0”, only: :test},
{:uuid, “~> 1.1”},
{:ex_aws, “~> 2.0”},
{:ex_aws_s3, “~> 2.0”},
{:hackney, “~> 1.9”},
{:sweet_xml, “~> 0.6”},
{:httpoison, “~> 1.0”},
{:exvcr, “~> 0.10”, only: :test}

The corresponding Erlang/OTP version is 21.
I searched for this kind of issue but no luck so far. Any help would be greatly appreciated.

FYI: The application works fine, the problem is the test cases.

Thanks in advance.

Try deleting your build folder and deps folders and then do mix do deps.get, compile, test.

2 Likes

Try these in your shell:

rm -rf _build
rm -rf deps
mix do deps.get, test
2 Likes

I cleaned the _build. However, it did not solve the issue.

There was an issue with the Erlang meck version. This Erlang meck release has fixed this issue.

I was using mock which was using meck version 0.8.9. I had to upgrade mock version to 0.3.2 so that it can use the correct version of meck.

Thanks @Fl4m3Ph03n1x and @dimitarvp for the help.

2 Likes