You can find all loaded modules with erlang:loaded/0 and call eunit:test/1 on them - they won’t throw an error, but would print something like “no test to run”. You can also filter them based on erlang:function_exported/3 so you don’t get unnecessary output.
But if you’re using rebar3, why don’t you just call rebar3 eunit?