In a recent piece on Medium Brujo talked about how he does Erlang testing. I wanted to follow up with one thing. How I setup my CI to run my tests.

First of all I use CircleCi to actually run my tests. This runs unit tests, Property Based Checks which may be in Triq or eqc, Dialyzer, and whatever else I put there. It also runs the tests for Elm and any other non Erlang parts of a project.

Circle is nice in that it will let you test closed source projects for free. You can pay to get more containers to run more tests.

So here is my circle.yml file (Feel free to adapt it)

And here is the makefile that actually runs everything. It is based on the erlware makefile from ages ago but changed in a lot of ways. It is a bit crufty but it works.

Note that I don’t use xref on my code. I found that xref gives a lot of errors on two types of modules I use a lot. The first is erlydtl code. Erlydtl exports a standard set of functions and not all are used. It also seems to object to lot of the functions in webmachine resources which are called.

Also a in general a lot of the properties that are run with triq are in fact actually run from eunit, so there is not a different make target for them