3.7 KiB
Trading Market-Sim End-To-End Tests
This direcotry contains end-to-end tests for the trading application using vega-market-sim. This README will guide you through setting up your environment and running the tests.
Prerequisites
Getting Started
- Install Poetry: Follow the instructions on the official Poetry website.
- Install Docker: Follow the instructions on the official Docker website.
- Install Python: Follow the instructions on the official Python website ensure you install a version between 3.9 and 3.11.
- Start up a Poetry environment: Execute the commands below to configure the Poetry environment.
Ensure you are in the tests folder before running commands
poetry shell
- Install python dependencies
poetry install
- Install Playwright Browsers: Execute the command below to browsers for Playwright.
playwright install chromium
- Download necessary binaries:
Use the following command within your Python environment. The
--force
flag ensures the binaries are overwritten, and the--version
specifies the desired version. e.g.v0.73.4
python -m vega_sim.tools.load_binaries --force --version $VEGA_VERSION
- Pull the desired Docker image
docker pull vegaprotocol/trading:develop
- Run tests: Poetry/Python will serve the app from docker
Update the .env file with the correct trading image.
poetry run pytest
Docker images
Pull the desired image:
Testnet
docker pull vegaprotocol/trading:develop
Mainnet
docker pull vegaprotocol/trading:main
Find all available images on Docker Hub.
Create a Docker Image of Your Locally Built Trading App
To build your Docker image, use the following commands:
yarn nx build trading ./docker/prepare-dist.sh
docker build -f docker/node-outside-docker.Dockerfile --build-arg APP=trading --build-arg ENV_NAME=stagnet1 -t vegaprotocol/trading:latest .
Running Tests 🧪
Before running make sure the docker daemon is running.
To run a specific test, use the -k
option followed by the name of the test.
Run all tests:
poetry run pytest
Run a targeted test:
poetry run pytest -k "test_name" -s --headed
Run from anywhere:
yarn trading:test -- "test_name" -s --headed
Run using your locally served console:
Within one terminal
yarn nx build trading
yarn nx serve trading
Once console is served you can use the flag --local-server
poetry run pytest -k "test_name" -s --headed --local-server
Running Tests in Parallel 🔢
To run tests in parallel, use the --numprocesses auto
option. The --dist loadfile
setting ensures that multiple runners are not assigned to a single test file.
From within the e2e folder:
poetry run pytest -s --numprocesses auto --dist loadfile
From anywhere:
yarn trading:test:all
Things to know
If you "intellisense" isn't working follow these steps:
-
poetry run which python
-
Then open the command menu in vscode (cmd + shift + p) and type
select interpreter
, press enter, select enter interpreter path press enter then paste in the output from that above command you should get the right python again