Document how to run the e2e tests with docker, locally
This commit is contained in:
@@ -27,6 +27,66 @@ A scenario is a list of functions that will be executed one by one, to
|
|||||||
verify the behaviour of one specific feature. Ideally, they should be
|
verify the behaviour of one specific feature. Ideally, they should be
|
||||||
short and test one specific aspect.
|
short and test one specific aspect.
|
||||||
|
|
||||||
|
Run the test suite locally
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Since this requires a lot of dependencies (an IRC server with some TLS
|
||||||
|
certificate, slixmpp, many libraries…), it might be cumbersome to get
|
||||||
|
everything on your machine to be able to run them.
|
||||||
|
|
||||||
|
The simplest solution (as long as you have docker installed and properly
|
||||||
|
configured to be able to run as your developer user…) is to follow these
|
||||||
|
instructions:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
:caption: Start a docker container with everything installed
|
||||||
|
|
||||||
|
docker run --name biboumi-e2e -v /home/louiz/biboumi/:/home/tester/biboumi \
|
||||||
|
--add-host="irc.localhost:127.0.0.1" \
|
||||||
|
--add-host="biboumi.localhost:127.0.0.1" \
|
||||||
|
--rm -it docker.louiz.org/louiz/biboumi/test-alpine \
|
||||||
|
/bin/bash
|
||||||
|
|
||||||
|
This creates a container where every dependency is already installed. We
|
||||||
|
mount your working directory inside the container: be sure to modify the
|
||||||
|
first path `/home/louiz/biboumi` with your own. The hosts that we add are
|
||||||
|
needed for the test suite to properly work.
|
||||||
|
|
||||||
|
You can use the test-fedora or test-debian images instead of test-alpine
|
||||||
|
if you want, but it should not change anything (even if your host machine
|
||||||
|
uses debian or fedora), alpine is just the lighter one.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
This container should stay alive as long as you want to run the test
|
||||||
|
suite. For example if you want to run it many times until your code is
|
||||||
|
fine and all tests pass, just leave that shell somewhere without
|
||||||
|
touching it.
|
||||||
|
|
||||||
|
Then, from an other shell (do NOT run that inside the container we just
|
||||||
|
created):
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
:caption: Configure and build biboumi from inside the container
|
||||||
|
|
||||||
|
docker exec biboumi-e2e sh -c "cd biboumi && mkdir build && cmake .."
|
||||||
|
|
||||||
|
This is needed (only once), because if you configure it from your host
|
||||||
|
machine, then the paths generated by cmake will be all wrong when you try
|
||||||
|
to compile from inside the container and nothing will work.
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
:caption: Re-compile and run the test suite inside the container
|
||||||
|
|
||||||
|
docker exec biboumi-e2e sh -c "cd biboumi/build && make e2e"
|
||||||
|
|
||||||
|
This should now build everything correctly, and run the test suite. If you
|
||||||
|
want to re-run it again after you edited something in your source tree,
|
||||||
|
just run this last command again. You don’t need to touch anything inside
|
||||||
|
the container again.
|
||||||
|
|
||||||
|
When you’re done, just close the shell we opened with the first command.
|
||||||
|
|
||||||
Available functions
|
Available functions
|
||||||
~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user