zstan commented on code in PR #12637: URL: https://github.com/apache/ignite/pull/12637#discussion_r3492304173
########## modules/ducktests/README.md: ########## @@ -1,311 +1,297 @@ -# Overview -The `ignitetest` framework provides basic functionality and services -to write integration tests for Apache Ignite. This framework bases on -the `ducktape` test framework, for information about it check the links: -- https://github.com/confluentinc/ducktape - source code of the `ducktape`. -- https://ducktape.readthedocs.io/en/latest/index.html - documentation to the `ducktape`. - -Structure of the `tests` directory is: -- `./ignitetest/services` contains basic services functionality. -- `./ignitetest/utils` contains utils for testing. -- `./ignitetest/tests` contains tests. -- `./checks` contains unit tests of utils, tests' decorators etc. - -Some tests (like the CDC replication ones) require modules maintained in the -separate [ignite-extensions](https://github.com/apache/ignite-extensions) repository. - -To run these tests the `ignite-extensions` working directory should be checked out -to the same filesystem level next to the `ignite` one. So it should be the below structure -of directories: -- `./ignite` working directory checked out from the ignite repository (mentioned as `${IGNITE_HOME}` below) -- `./ignite-extensions` working directory checked out from the ignite-extensions repository - -The needed extension module should be built before tests run. - -For example for the CDC replication tests the `cdc-ext` module should be built as: -``` -cd ${IGNITE_HOME}\..\ignite-extensions -mvn clean package -pl :ignite-cdc-ext -Pskip-docs -DskipTests -``` +# Apache Ignite Integration Test Framework - Ducktests -# Local run -Docker is used to emulate distributed environment. Single container represents -a running node. +The `ignitetest` framework provides basic functionality and services to write integration tests for Apache Ignite. This framework is built on top of the **ducktape** test framework. +* For core concepts, see the [ducktape source code](https://github.com/confluentinc/ducktape). +* For framework details, see the [ducktape documentation](https://ducktape.readthedocs.io/en/latest/index.html). -## Requirements -To just start tests locally the only requirement is preinstalled `docker`. -For development process requirements are `python` >= 3.7. +### Repository Structure +All paths below are relative to `${IGNITE_HOME}/modules/ducktests/tests`: +* `./ignitetest/services`: Contains basic services and cluster orchestration logic. +* `./ignitetest/utils`: Contains testing helper utilities. +* `./ignitetest/tests`: Contains the actual integration test scenarios. +* `./checks`: Contains internal framework unit tests and style decorators. -## Run tests -- Change a current directory to`${IGNITE_HOME}` -- Build Apache IGNITE invoking `${IGNITE_HOME}/scripts/build-module.sh ducktests` -- (Optionally) Build the needed extension modules in the `${IGNITE_HOME}\..\ignite-extensions` directory -- Change a current directory to `${IGNITE_HOME}/modules/ducktests/tests` -- Run tests in docker containers using a following command: -``` -./docker/run_tests.sh +--- + +## Quick Start (Local Docker Run) + +Docker is used to emulate a distributed multi-node cluster environment where each individual container acts as a running cluster node. + +### 1. Prerequisites +* **Docker** installed and running on your host system. +* **Python >= 3.8** installed on your host system (required only for local environment scripts and development). + +### 2. Prepare the Environment & Code +Execute these preparation steps from the root directory of your project: +```bash +# 1. Change your current directory to the Ignite root +cd ${IGNITE_HOME} + +# 2. Build the Apache Ignite ducktests modules +./scripts/build-module.sh ducktests + +# 3. Navigate into the ducktests directory +cd modules/ducktests/tests ``` -- For detailed help and instructions, use a following command: + +### 3. Preparing the Local Environment +Run the following commands from your host system's shell inside `${IGNITE_HOME}/modules/ducktests/tests`: +```bash +# Create and activate an isolated development virtual environment +python3 -m venv ~/.virtualenvs/ignite-ducktests-dev +source ~/.virtualenvs/ignite-ducktests-dev/bin/activate + +# Install core framework testing requirements and editable dependencies +pip install -r docker/requirements-dev.txt Review Comment: not working for me : ``` pip install -r docker/requirements-dev.txt Looking in indexes: http://repo.infra.sbt/trusted_repo/mirror/pypi_2/simple/ Looking in links: http://repo.infra.sbt/trusted_repo/mirror/pypi_2/simple/ ERROR: Could not find a version that satisfies the requirement filelock==3.8.2 (from versions: 0.2.0, 0.2.1, 0.2.2, 1.0.0, 1.0.1, 1.0.2, 1.0.3, 2.0.0, 2.0.1, 2.0.4, 2.0.5, 2.0.6, 2.0.7, 2.0.8, 2.0.9, 2.0.10, 2.0.11, 2.0.12, 2.0.13, 3.0.0, 3.0.2, 3.0.3, 3.0.4, 3.0.6, 3.0.8, 3.0.9, 3.0.10, 3.0.12, 3.1.0, 3.2.0, 3.2.1, 3.3.0, 3.3.1, 3.3.2, 3.4.0, 3.4.1, 3.4.2, 3.13.1, 3.13.3, 3.15.4, 3.16.1, 3.17.0, 3.18.0, 3.19.1, 3.20.0, 3.20.1, 3.25.2) ERROR: No matching distribution found for filelock==3.8.2 ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
