erlangeunitrebar3

How to not symlink the priv directory for Rebar3 eunit tests?


When using:

$ rebar3 as test eunit

it compiles the code into ebin, but the other directories are symlinked in the _build/test/lib folder. I've tried using profile test by modifying:

{relx, [{dev_mode, false}]}

This works only for _build/test/rel directory but not the lib directory. So during tests they are referencing the lib symlink directories. Is there a way to have these directories not symlinked to the original, but actual copies provided like the release?


Solution

  • After a quick look at the rebar3 code there doesn't seem to be a way to force copying of these directories. It looks like the priv directory is always symlinked here. Even though the function used is called symlink_or_copy, it only ends up copying when there is an error while creating the symlink.

    dev_mode is a relx option, that's why it doesn't affect rebar3 features.

    If you want this feature added you can create a feature request explaining your use case, why you think it would be useful and it might get implemented.