I was playing around with multi-language umbrella applications yesterday, it's great that mix knows how to compile applications managed by rebar3, I found myself wishing that I could similarly run my tests from the root of the umbrella with `mix test` in the same way. I thought about it a little bit, and I had two ideas:
1) mix knows to run both `rebar3 eunit` and `rebart3 ct` when it tries to run tests in a rebar3 managed application, or
2) mix runs `rebar3 test` and expects the user to configure their rebar3 applicaiton to have an alias called `test` that runs the tests for this project in whichever way they see fit.
I personally like option 1 better, but I can see a reason for option 2.
The biggest issue I see with option 1 is the handling of CLI flags and such, since `mix test`, `rebar3 eunit` and `rebar3 ct` all have a bunch of possible configuration that can be passed in as CLI options. I'm not totally sure how we'd want to handle that sort of thing, but it's the biggest area I can see this getting kind of difficult.
So, what do folks think?