InditexTech Karate Tools

Repository structure

How the Karate Tools Open Source repository is organized.

This library is a general purpose library that can be used by any Karate project.

The Karate Tools Open Source Repository is organized as follows:

  • code - Karate Tools Open Source codebase with the corresponding unit and integration tests

  • e2e/karate - Karate Tools Open Source karate tests

  • docs - Karate Tools Open Source documentation based on asciidoc and antora

โ”œโ”€โ”€ code (1)
โ”‚   โ”œโ”€โ”€ archetype (2)
โ”‚   โ”‚   โ””โ”€โ”€ src
โ”‚   โ”‚       โ””โ”€โ”€ test
โ”‚   โ”‚           โ”œโ”€โ”€ java
โ”‚   โ”‚           โ””โ”€โ”€ resources
โ”‚   ...
โ”‚   โ””โ”€โ”€ starter (2)
โ”œโ”€โ”€ docs (3)
โ”‚   โ”œโ”€โ”€ build (4)
โ”‚   โ”œโ”€โ”€ node_modules (4)
โ”‚   โ”œโ”€โ”€ src
โ”‚   โ”‚   โ””โ”€โ”€ modules (5)
โ”‚   โ”‚       โ”œโ”€โ”€ HOME
โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ images
โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ pages
โ”‚   โ”‚       ...
โ”‚   โ”‚       โ””โ”€โ”€ release
โ”‚   โ””โ”€โ”€ supplemental-ui (6)
โ””โ”€โ”€ e2e
    โ””โ”€โ”€ karate (7)
        โ””โ”€โ”€ src
            โ””โ”€โ”€ test
                โ”œโ”€โ”€ java
                โ””โ”€โ”€ resources
1 codebase root directory
2 codebase maven modules
3 documentation root directory
4 documentation build and node directories
5 documentation antora asciidoc modules
6 documentation antora UI assets (page templates, CSS, JavaScript, images, etc.)
7 karate-test maven module root directory

The main code modules are:

  • ๐Ÿ‘ฉโ€๐Ÿ’ป karatetools-oss-archetype: archetype to generate a karate project from scratch with the necessary configurations and utilities for the execution of tests.

  • ๐Ÿ‘ฉโ€๐Ÿ’ป karatetools-oss-clients: clients to interact with relational databases via JDBC (MariaDB and PostgreSQL), MongoDB, Kafka and JMS (Active MQ and Rabbit MQ)

  • ๐Ÿ‘ฉโ€๐Ÿ’ป karatetools-oss-generators: generators of tests from Open API

  • ๐Ÿ‘ฉโ€๐Ÿ’ป karatetools-oss-runner: karate runner and all related utilities (authentication, JWT tokens, karate base configuration, karate utils, karate mocks, karate cache, karate results and reports, …​)

  • ๐Ÿ‘ฉโ€๐Ÿ’ป karatetools-oss-starter: starter module to include the generators, clients and runner in a Karate project.

It includes test open api modules:

  • ๐Ÿ‘ฉโ€๐Ÿ’ป karatetools-oss-openapi-test: Open API test specifications for the karate tools tests with two sub-modules:

    • ๐Ÿ‘ฉโ€๐Ÿ’ป karatetools-oss-xxx-api-rest-stable: api to test the test generation tools

    • ๐Ÿ‘ฉโ€๐Ÿ’ป karatetools-oss-xxx-external-api-rest-stable: api to test the mock generation tools

It includes a spring boot module:

  • ๐Ÿ‘ฉโ€๐Ÿ’ป karatetools-oss-boot: spring boot application with a simple rest api implementing the Open API test specification and docker containers to be used as target for the karate tools tests (runner, rest, auth, jdbc, mongodb, kafka, jms, …​)

The karate test module is defined in the e2e/karate folder:

  • ๐Ÿงช karatetools-oss-karate-test: karate module to test the karate tools.

    • This module has been generated using the โš™๏ธ Karate Tools - Archetype

    • Includes auto-generated tests and mocks for sample api (karatetools-oss-openapi-test)

    • uses the karatetools-oss-starter to test the karate clients and the sample application (karatetools-oss-boot) and containers.

The documentation is defined in the docs folder:

  • ๐Ÿ“„ karatetools-oss-docs: documentation of the karate tools based on asciidoc and antora.