WARNING Running the tests involves killing processes and switching user identity.
Don't run tests on your development machine
The project uses Circle CI. For running tests locally, you need to set up a virtual machine. The easiest road is using Vagrant.
One you are inside the virtual machine, you can execute the tests just with mix test
.
If you haven't already, install Vagrant.
Then, inside the directory root of the project, run
vagrant up
You can then enter the machine with vagrant ssh
.
Inside the machine, first up you need to install a recent ruby version and then replicate
the setup steps in the circle.yml
file once.
You can execute a single test file with
vagrant ssh -- sh -c "cd /vagrant; mix test test/some_test.exs"
.
This only works on a linux machine, but has performance benefits, which can be useful for triggering race conditions that don't surface when using Vagrant. The setup is a little bit involved, so I'm only mentioning it here for now.