On Wed, 5 Jan 2022 at 10:12, José Valim <[email protected]> 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 [email protected].
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.