On Wed, 5 Jan 2022 at 10:12, José Valim <jose.va...@dashbit.co> wrote:

>
>   * if true, runs the tests asynchronously with other modules
>   * if false, runs the tests synchronously with other modules
>   * if an atom, runs the tests synchronously with modules in the same
> group (atom) and asynchronously with the remaining ones
>

Perfect! This is exactly what I'm proposing :)


> The big question is: would we want the opposite? If an atom, runs the
> tests asynchronously with modules in the same group and synchronously with
> the remaining ones? And I would say that sounds doable too.
>

I guess if it's easy to do at the same time, but I think the same effect
could be achieved using tags: multiple runs of `mix test --only group_<x>`
would separate the groups, running tests within each async, but each group
synchronously with respect to the next.


> > async: true | false | {:async_within, :group} | {:async_outside, :group}
> Best ideas I can come up with are *async: {isolate: :group}*, and *async:
> {alongside: :group}*, but not sure how much better that is.
>

I'd suggest matching the naming convention for filtering tags from mix:

async: {:exclude, [:group1, :group2]}
async: {:only, [:group1, :group2]}  # if this feature is wanted

I do think we need a list, as there may be multiple groups we need to
exclude from running simultaneously. I am also a little concerned about
confusion between groups defined here for async groups, and test module
tags.

Paul

-- 
You received this message because you are subscribed to the Google Groups 
"elixir-lang-core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elixir-lang-core+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elixir-lang-core/CALZj-Vq%2BuUsqEHtqZvDok0wr5ycs9u%3DLeyh5Oqs-8JouV%3D0W9g%40mail.gmail.com.

Reply via email to