Multiverses
Multiverses for Elixir.
Don't let Mox, Ecto, Hound and Wallaby have ALL the fun!
Wubba dubba lub lub!
Usage
add a line into the configuration (typically test.exs):
config :my_app, use_multiverses: trueIf you'd like to drop in multiverse sharding for a given module, You should structure your module as follows:
defmodule MyModule do
use Multiverses, with: Registry
def my_function(...) do
# uses Multiverses.Registry when enabled.
Registry.unegister(...)
end
end
Some modules which change their implementation, may instead activate
themselves via the use directive. For example:
defmodule MyServer do
use Multiverses.GenServer
def start_link(_) do
# uses Multiverses.GenServer in
GenServer.
end
endTesting
you can activate multiple copies of all the tests by passing the
REPLICATION system environment variable:
REPLICATION=10 mix testwill copy the test modules 10 times over, so multiple versions of the same module could possibly run simultaneously.
Installation
The package can be installed
by adding multiverses to your list of dependencies in mix.exs:
def deps do
[
{:multiverses, "~> 0.5.4", runtime: false}
]
endDocumentation can be found at https://hexdocs.pm/multiverses.