Hi Jose Vargas,
You can use tags as described in the `ExUnit.Callbacks` module docs:
Finally, as discussed in the ExUnit.Case documentation, remember that
the initial context metadata can also be set via @tags, which can then
be accessed in the setup block:
defmodule ExampleTagModificationTest do
use ExUnit.Case
setup %{login_as: username} do
{:ok, current_user: username}
end
@tag login_as: "max"
test "tags modify context", context do
assert context[:login_as] == "max"
assert context[:current_user] == "max"
end
end
Cheers
On Sun, 12 Feb 2023 14:52:37 -0800 (PST)
Jose Vargas <
josep...@gmail.com> wrote:
> There is module-level *setup* and module-level *setup_all*
> There is describe-level *setup* but there is no describe-level
> *setup_all*
>
> I find it would be convenient to have *describe* level *setup_all*.
>
> Right now the solution to have different *setup_all* for a group of
> tests is to break them into different modules. This works fine but
> sometimes I want those tests in the same module, perhaps I want them
> to share some module-level *setup* or *setup_all*.
>
> So I propose a *setup_all* inside a* describe* block, same semantics
> as module-level but only affects *describe* block.
> 1. Runs only once for all the tests inside *describe*, runs in a
> separate process.