/multiverses

multiverse support for elixir

Primary LanguageElixirOtherNOASSERTION

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):

If you'd like to drop in multiverse sharding for registry

# config.exs
config :my_app, Registry, Registry
# test.exs
config :my_app, Registry, Multiverses.Registry
defmodule MyModule do
  @registry Application.config_env!(:my_app, Registry)

  def my_function(...) do
    # uses Multiverses.Registry when enabled.
    @registry.unregister(...)
  end
end

Testing

you can activate multiple copies of all the tests by passing the REPLICATION system environment variable:

REPLICATION=10 mix test

will 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.8.1", runtime: (Mix.env() == :test)}
  ]
end

Documentation can be found at https://hexdocs.pm/multiverses.