mx-tester-0.2.3-alpha.3 has been yanked.
About
mx-tester is a WIP tool to help test Matrix bots and Synapse modules.
What mx-tester does
The flow of mx-tester is the following:
mx-tester buildCreate a Docker image for Synapse. If you need your Synapse to be setup with custom modules, you add scripts to this step to install the modules.mx-tester upLaunch Synapse on port 9999.mx-tester runLaunch your test script.mx-tester downStop Synapse.
You may customize each of these steps by inserting scripts.
If you are using mx-tester to launch tests on a project that has already been setup, your flow is probably simply:
# Setup and launch Synapse, modules, bots, ...
# Launch the tests. Repeat as many times as needed, as you fix tests or your code.
# Once you're done testing
Setting up mx-tester.
mx-tester requires a configuration file, typically called mx-tester.yml.
It has the following structure:
name: A name for this test suite
homeserver_config:
# A yaml subtree specifying configuration options for Synapse.
#
# This uses the exact same syntax as homeserver.yaml.
#
# If you make use of modules, it MUST contain an entry `modules`,
# as per https://github.com/matrix-org/synapse/blob/develop/docs/modules.md
modules:
- name: Name of a module you wish to setup
build: # A script to setup the module.
- # This script MUST copy the source code of the module
- # to directory $MX_TEST_MODULE_DIR
- # ...
- # env: MX_TEST_MODULE_DIR -- where the module should be copied
- # env: MX_TEST_SYNAPSE_DIR -- where Synapse source lies
- # env: MX_TEST_SCRIPT_TMPDIR -- a temporary directory where the test can
- # write data. Note that `mx-tester` will NOT clear this directory.
- # env: MX_TEST_CWD -- the directory in which the test was launched.
- # Other modules, if necessary.
up: # Optionally, a script to be executed at the end of `mx-tester up`
- # Use this script e.g. to setup additional components, such as bots.
-
- # env: MX_TEST_SCRIPT_TMPDIR -- a temporary directory where the test can
- # write data. Note that `mx-tester` will NOT clear this directory.
- # env: MX_TEST_CWD -- the directory in which the test was launched.
run: # Optionally, a script to be executed as `mx-tester run`
- # Use this script e.g. to start your tests.
- # env: MX_TEST_SCRIPT_TMPDIR -- a temporary directory where the test can
- # write data. Note that `mx-tester` will NOT clear this directory.
- # env: MX_TEST_CWD -- the directory in which the test was launched.
down: # Optionally, a script to be executed at the start of `mx-tester down`
# Use this script e.g. to teardown additional components, such as bots.
success: # Optionally, a script to be executed if `run` was a success. -- NOT IMPLEMENTED YET
failure: # Optionally, a script to be executed if `run` was a failure. -- NOT IMPLEMENTED YET
finally: # Optionally, a script to be executed regardless of the result of `run`.
- # env: MX_TEST_SCRIPT_TMPDIR -- a temporary directory where the test can
- # write data. Note that `mx-tester` will NOT clear this directory.
- # env: MX_TEST_CWD -- the directory in which the test was launched.