[erlang-questions] [ANN] detest: Tool for running tests on a cluster of erlang nodes

Tuncer Ayaz tuncer.ayaz@REDACTED
Wed Feb 11 20:40:04 CET 2015

On Wed, Feb 11, 2015 at 4:23 PM, Sergej Jurecko wrote:
> Hello
> Criticisms and suggestions welcome:
> https://github.com/biokoda/detest
> Detest is a tool for running distributed erlang tests. It is
> designed to be simple and flexible. It sets up a distributed
> environment of multiple nodes, then it calls your code to do
> whatever you wish with that environment.
> As a parameter it takes in path to your test script. This script
> needs to export at least: cfg/1, run/1, setup/1, cleanup/1.
> Detest is configured with your cfg/1 function within the script. It
> instructs detest how many nodes to run, where their configuration
> files are, how to execute your app, etc.
> Detest will then execute the nodes, connect to each (as a hidden
> node) wait for your app to start, then call run/1 function in your
> script. You are then free to do whatever you wish. RPC is possible
> to any of the nodes. You can also terminate the test at any time by
> entering q to terminal.
> Run it like so:
>     ./detest test/test.erl
> You can print all console output from your nodes:
>     ./detest -v test/test.erl
> You can also send arguments to your script:
>     ./detest -v test/test.erl dotest1
> If you are on linux and willing to run detest as sudo, it will use
> damocles library to create seperate network interfaces for every
> node that you have configured. You can then call damocles library
> directly and create various network condition like packetloss,
> delays or network splits between nodes.
> detest will create a folder named .detest in at location it is
> running from. This is where node logs and state should go.
> For an example look at: test/test.erl and test/app.config

Thanks for sharing this, and allow me to ask: What are the advantages
over common_test?

More information about the erlang-questions mailing list