I am trying to perform test which uses Task.async
on another Node
So actually what I’ve done is launched phx.server
as daemon
elixir --detached --name apples@127.0.0.1 -S mix phx.server
Then I run test which does something like
task = Task.Supervisor.async {Apples.TaskSupervisor, :"apples@127.0.0.1"}, Apples.Red, :eat, [1]
result = Task.await(task)
The command to run a test
elixir --name oranges@127.0.0.1 -S mix test test/oranges/oranges_test.exs
The issue is that I receive
no process: the process is not alive or there's no process currently associated with the given name, possibly because its application isn't started
But when I launch it with iex I can connect to apples node.
If you run Node.connect :"apples@127.0.0.1"
before the test, what does it return?
If I launch extra terminal with
iex --name bananas@127.0.01
I successfully can connect to the node.
I succeed to locate the issue. To simplify testing I launch every time a daemon in test_helper.ex
.
Under the list taken from ps aux | grep beam
there is an app launched from the test. But still test is not able to connect meanwhile another iex node can.
I believe my issue is launching from the test which case raises this issue.
From the processes list I found the difference in how elixir launched. Just to save your time the diff is
ebin -noshell -s elixir start_cli -noshell -noinput
vs ebin -elixir ansi_enabled true -noshell -s elixir start_cli
can it affect the behaviour of the test?
# from test using System.cmd
vlad 8203 0.7 0.5 4102584 39768 ?? S 12:59AM 0:01.83 /usr/local/Cellar/erlang/20.0.5/lib/erlang/erts-9.0.5/bin/beam.smp -- -root /usr/local/Cellar/erlang/20.0.5/lib/erlang -progname erl -- -home /Users/vlad -- -pa /Users/vlad/.kiex/elixirs/elixir-1.5.1/lib/elixir/bin/../lib/eex/ebin /Users/vlad/.kiex/elixirs/elixir-1.5.1/lib/elixir/bin/../lib/elixir/ebin /Users/vlad/.kiex/elixirs/elixir-1.5.1/lib/elixir/bin/../lib/ex_unit/ebin /Users/vlad/.kiex/elixirs/elixir-1.5.1/lib/elixir/bin/../lib/iex/ebin /Users/vlad/.kiex/elixirs/elixir-1.5.1/lib/elixir/bin/../lib/logger/ebin /Users/vlad/.kiex/elixirs/elixir-1.5.1/lib/elixir/bin/../lib/mix/ebin -noshell -s elixir start_cli -noshell -noinput -name apples@127.0.0.1 -extra --detached --name apples@127.0.0.1 -S mix phx.server
# from cli
vlad 8765 0.1 0.5 4108220 43144 ?? S 1:05AM 0:01.23 /usr/local/Cellar/erlang/20.0.5/lib/erlang/erts-9.0.5/bin/beam.smp -- -root /usr/local/Cellar/erlang/20.0.5/lib/erlang -progname erl -- -home /Users/vlad -- -pa /Users/vlad/.kiex/elixirs/elixir-1.5.1/lib/elixir/bin/../lib/eex/ebin /Users/vlad/.kiex/elixirs/elixir-1.5.1/lib/elixir/bin/../lib/elixir/ebin /Users/vlad/.kiex/elixirs/elixir-1.5.1/lib/elixir/bin/../lib/ex_unit/ebin /Users/vlad/.kiex/elixirs/elixir-1.5.1/lib/elixir/bin/../lib/iex/ebin /Users/vlad/.kiex/elixirs/elixir-1.5.1/lib/elixir/bin/../lib/logger/ebin /Users/vlad/.kiex/elixirs/elixir-1.5.1/lib/elixir/bin/../lib/mix/ebin -elixir ansi_enabled true -noshell -s elixir start_cli -noshell -noinput -name apples@127.0.0.1 -extra --detached --name apples@127.0.0.1 -S mix phx.server