Skip to content

Running ExUnit tests for a specific line in IntelliJ IDEA, rebar3 is not found #1912

Open
@mattgibson

Description

@mattgibson

Describe the bug
Elixir and erlang installed via asdf. When running a test, an error appears as follows:

/Users/matthewgibson/.asdf/installs/erlang/23.2.4/bin/erl -pa /Users/matthewgibson/.asdf/installs/erlang/23.2.4/lib/compiler-7.6.6/ebin -pa /Users/matthewgibson/.asdf/installs/erlang/23.2.4/lib/megaco-3.19.5/ebin -pa /Users/matthewgibson/.asdf/installs/erlang/23.2.4/lib/diameter-2.2.3/ebin -pa /Users/matthewgibson/.asdf/installs/erlang/23.2.4/lib/erl_docgen-1.0.2/ebin -pa /Users/matthewgibson/.asdf/installs/erlang/23.2.4/lib/tftp-1.0.2/ebin -pa /Users/matthewgibson/.asdf/installs/erlang/23.2.4/lib/hipe-4.0.1/ebin -pa /Users/matthewgibson/.asdf/installs/erlang/23.2.4/lib/public_key-1.9.2/ebin -pa /Users/matthewgibson/.asdf/installs/erlang/23.2.4/lib/inets-7.3.1/ebin -pa /Users/matthewgibson/.asdf/installs/erlang/23.2.4/lib/kernel-7.2/ebin -pa /Users/matthewgibson/.asdf/installs/erlang/23.2.4/lib/mnesia-4.18.1/ebin -pa /Users/matthewgibson/.asdf/installs/erlang/23.2.4/lib/xmerl-1.3.26/ebin -pa /Users/matthewgibson/.asdf/installs/erlang/23.2.4/lib/tools-3.4.2/ebin -pa /Users/matthewgibson/.asdf/installs/erlang/23.2.4/lib/ssl-10.2.2/ebin -pa /Users/matthewgibson/.asdf/installs/erlang/23.2.4/lib/crypto-4.8.3/ebin -pa /Users/matthewgibson/.asdf/installs/erlang/23.2.4/lib/edoc-0.12/ebin -pa /Users/matthewgibson/.asdf/installs/erlang/23.2.4/lib/ftp-1.0.5/ebin -pa /Users/matthewgibson/.asdf/installs/erlang/23.2.4/lib/ssh-4.10.7/ebin -pa /Users/matthewgibson/.asdf/installs/erlang/23.2.4/lib/snmp-5.7.3/ebin -pa /Users/matthewgibson/.asdf/installs/erlang/23.2.4/lib/common_test-1.19.1/ebin -pa /Users/matthewgibson/.asdf/installs/erlang/23.2.4/lib/eunit-2.6/ebin -pa /Users/matthewgibson/.asdf/installs/erlang/23.2.4/lib/parsetools-2.2/ebin -pa /Users/matthewgibson/.asdf/installs/erlang/23.2.4/lib/odbc-2.13.2/ebin -pa /Users/matthewgibson/.asdf/installs/erlang/23.2.4/lib/erts-11.1.7/ebin -pa /Users/matthewgibson/.asdf/installs/erlang/23.2.4/lib/et-1.6.4/ebin -pa /Users/matthewgibson/.asdf/installs/erlang/23.2.4/lib/os_mon-2.6.1/ebin -pa /Users/matthewgibson/.asdf/installs/erlang/23.2.4/lib/debugger-5.0/ebin -pa /Users/matthewgibson/.asdf/installs/erlang/23.2.4/lib/erl_interface-4.0.2/ebin -pa /Users/matthewgibson/.asdf/installs/erlang/23.2.4/lib/reltool-0.8/ebin -pa /Users/matthewgibson/.asdf/installs/erlang/23.2.4/lib/eldap-1.2.8/ebin -pa /Users/matthewgibson/.asdf/installs/erlang/23.2.4/lib/sasl-4.0.1/ebin -pa /Users/matthewgibson/.asdf/installs/erlang/23.2.4/lib/wx-1.9.2/ebin -pa /Users/matthewgibson/.asdf/installs/erlang/23.2.4/lib/asn1-5.0.14/ebin -pa /Users/matthewgibson/.asdf/installs/erlang/23.2.4/lib/stdlib-3.14/ebin -pa /Users/matthewgibson/.asdf/installs/erlang/23.2.4/lib/syntax_tools-2.4/ebin -pa /Users/matthewgibson/.asdf/installs/erlang/23.2.4/lib/dialyzer-4.3/ebin -pa /Users/matthewgibson/.asdf/installs/erlang/23.2.4/lib/runtime_tools-1.15.1/ebin -pa /Users/matthewgibson/.asdf/installs/erlang/23.2.4/lib/observer-2.9.5/ebin -pa /Users/matthewgibson/.asdf/installs/elixir/1.11.3-otp-23/lib/logger/ebin -pa /Users/matthewgibson/.asdf/installs/elixir/1.11.3-otp-23/lib/elixir/ebin -pa /Users/matthewgibson/.asdf/installs/elixir/1.11.3-otp-23/lib/ex_unit/ebin -pa /Users/matthewgibson/.asdf/installs/elixir/1.11.3-otp-23/lib/mix/ebin -pa /Users/matthewgibson/.asdf/installs/elixir/1.11.3-otp-23/lib/eex/ebin -pa /Users/matthewgibson/.asdf/installs/elixir/1.11.3-otp-23/lib/iex/ebin -noshell -s elixir start_cli -elixir ansi_enabled true -extra -r /private/var/folders/k4/pvs3r_sx7bs89hnb061pndz00000gn/T/intellij_elixir8/exunit/1.6.0/team_city_ex_unit_formatting.ex -r /private/var/folders/k4/pvs3r_sx7bs89hnb061pndz00000gn/T/intellij_elixir8/exunit/1.6.0/team_city_ex_unit_formatter.ex /Users/matthewgibson/.asdf/installs/elixir/1.11.3-otp-23/bin/mix test --formatter TeamCityExUnitFormatter test/vistalink_web/controllers/webhooks_controller_test.exs:30
Testing started at 19:01 ...
==> ordinal
Compiling 1 file (.ex)
Generated ordinal app
==> vistalink
Could not find "rebar3", which is needed to build dependency :yamerl
I can install a local copy which is just used by Mix
Shall I install rebar3? (if running non-interactively, use "mix local.rebar --force") [Yn] 

To Reproduce
Steps to reproduce the behavior:

  1. Install elixir and erlang via asdf and configure them as SDKs (erlang intellij plugin not present)
  2. Get a basic Phoenix project set up with a runnable exunit test. Not yet compiled, but with a dependency that needs compiling via rebar present.
  3. Import it via "New project from existing sources" as per the plugin README via the mix config
  4. Right click on the first line of the test block in the test file and choose Run...
  5. See the error output above

Expected behavior
The test should run by first finding rebar3 and doing the compilation, which works fine on the command line.

If I take the command that intellij is using above and delete most of it, ending up with this:

/Users/matthewgibson/.asdf/installs/elixir/1.11.3-otp-23/bin/mix test test/vistalink_web/controllers/webhooks_controller_test.exs:30

Then it works from the command line. Asdf versions are set to the same on the command line as in the SDK.

Once the compilation has happened on the command line, re-running the configuration in IntelliJ works fine. If I delete /_build/test then it breaks again.

Somehow intellij is not finding the mix version of rebar, which is definitely there and installed.

Screenshots
Screenshot 2021-02-22 at 19 13 03

Screenshot 2021-02-22 at 19 14 29

Desktop:

  • OS: MacOs
  • Version 11.2.1

Erlang:

  • Installer asdf
  • Version 23.2.4

Elixir:

  • Installer asdf
  • Version 1.11.3-otp-23

Plugin:

  • Version 11.10.0

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions