intellij-elixir
intellij-elixir copied to clipboard
Running ExUnit tests for a specific line in IntelliJ IDEA, rebar3 is not found
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:
- Install elixir and erlang via asdf and configure them as SDKs (erlang intellij plugin not present)
- 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.
- Import it via "New project from existing sources" as per the plugin README via the mix config
- Right click on the first line of the
test
block in the test file and chooseRun...
- 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

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
Getting the same. Same versions of erlang and elixir. Except I'm running Ubuntu.
I am getting the same thing. I tried rolling back to older versions of the plugin and also installing elixir/erlang through Homebrew instead of asdf and I am still seeing the same error message.
Part of the solution:
Before you can see any of the above SDK settings that mattgibson highlights, you have to install the Elixir plugin.
Run mix local.rebar --force
on the command line then which rebar
.
Then change this setting in the image for the rebar or rebar3 location. This is in the application settings.
This is still not quite picking up rebar for me but looks like an important setting.
Version info: IntelliJ IDEA 2021.2.1 (Ultimate Edition) OSX 11.5.2
Separate question here is how can we force IntelliJ to run tests in interactive mode, is there an option for that?
@dg-developer did you find a solution for this ?? I stucked in this same problem