/catcher_base

Service for running end to end tests

Primary LanguageKotlinApache License 2.0Apache-2.0

Catcher Base test

Service for carrying end-to-end tests with Catcher.
Requires Postgres.

Run

Local

To run it locally or via the IDE you must ensure you have python installed, as this is a requirement for the catcher-core. On the first run application will detect python and install catcher itself if it is not installed. It is recommended to use venv (recommended) or conda instead of system python when running locally.

If you are catcher_base via IDE with conda executor you and you set it up as native_executable - you must add it's PATH to the IDE's run config.

Docker

Application already dockerized. You can run it standalone or via docker-compose. It can be configured via env vars or by mounting your application configuration to /usr/app/config.

Configuration

Service can be configured via environmental variables, java args or by placing your own application.yml/application.properties to the default Spring's search path.

Database

DB_HOST - database host. Localhost is default.
DB_PORT - database port. 5432 is default.
DB_NAME - database name. catcher is default.
DB_USER - database user. test is default.
DB_PASS - database password. test is default.

Service

LOCAL_DIR - local directory for projects storage. ./ is default. Only local filesystem paths are supported right now.
SERVER_PORT - which port to listen. 8080 is default. You can also use -Dserver.port java arg.
ADMIN_USER - admin user email/name. Will be created on startup, if there are no other admin users in the database.
ADMIN_PASS - admin user password.
JWT_PRIV - set your own secret key for jwt token encryption (highly recommended).

Executors

Local

Local executor run tests on the same machine with Base is running.
You can configure it:
MAX_POOL_SIZE - executor's max pool size (default is 2)
CORE_POOL_SIZE - executor's core pool size (default is 1)

Kubernetes

K8s executor runs tests in spawned by demand k8s agents. To select it over the local executor you need to wait till I implement it :/

Tools

Python 3.7+ is needed for tests to run, as well as catcher itself. You can specify different python providers, such as Conda, Venv or python used in the system.
For Conda specify catcher.system.conda_name.
For Venv specify catcher.system.venv_name.
For system specify both catcher.system.native_executable and catcher.system.pip_executable.
Remember, that only one of them should be specified.
Catcher will be installed automatically on Base startup.
switch to env vars!