Skip to content

ruby2elixir/multiverses

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

If 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

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

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

About

multiverse support for elixir

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Elixir 100.0%