Script for generating tests from Markdown files
Project description
Скрипт для генерации файлов с тестами на основе текстовых сценариев.
Features
- Генерация шаблонных тестов на основе сценариев, описанных в .md формате;
- Поддержка кастомных шаблонов тестов;
- Генерация имен тестов при помощи ChatGPT;
- Обратная генерация .md файла на основе файлов тестов;
- Генерация интерфейса для тестов на основе Swagger документации;
- Генерация схем для тестов на основе Swagger документации;
Getting Started
WD - текущая директория
Step 1. Создать новый md-файл со сценариями
Генерация нового md-файла со сценариями в WD:
gena --md-example --md-format=md_table_format
Step 2. Создать py-файлы по сценариям
Генерация py-файлов в WD без использования интерфейса по md-файлу со сценариями в WD:
gena --template-path=$(pwd)/templates/test_template.txt
Step 3. Создать md-файл со сценариями по py-файлам
Cгенерировать md-файл в WD по уже имеющимся тестам в TARGET_DIR и сабдиректориях:
gena --reversed --target-dir TARGET_DIR
Использование AI
Для генерации имен тестов можно использовать AI ChatGPT
Для того чтобы имена тестов были сгенерированы AI:
- запустить скрипт генерации py файлов с ключом
--ai
; - в файле сценариев поле subject должно быть не заполнено;
- должны быть определены env переменные
OPENAI_API_KEY
&OPENAI_URL
.
gena --template-path=$(pwd)/templates/test_template.txt --ai
Форматы md-файлов
- В виде списка:
--md-format=md_list_format
- В виде таблицы:
--md-format=md_table_format
Кастомные шаблоны для генерации тестов
Скрипт может использовать кастомные шаблоны для генерации тестов (см. /templates
)
При описании сценариев в форматах md_list_format & md_table_format в шаблоне доступны следующие переменные:
{{ test_scenarios }}
- массив тестов.
Каждый объект scenario
из массива test_scenarios
имеет следующие поля:
{{ scenario.priority }}
- приоритет теста;{{ scenario.subject }}
- имя теста;{{ scenario.description }}
- описание теста;{{ scenario.expected_result }}
- ожидаемый результат теста;{{ scenario.is_positive }}
- признак позитивности теста;{{ scenario.params }}
- массивstr
параметров теста.
При описании сценариев в .md файле можно объявить переменные (в формате **var_name** = var_value
), которые могут быть использованы в шаблоне тестов, например:
**feature** = my_feature_value
Использование в шаблоне:
This test is from {{ suite_data['feature'] }} feature
Генерация api интерфейса и схемы:
tests
- для генерации тестов;interface
- для генерации интерфейса;schemas
- для генерации схем;
Для этого нужно указать флаг --generate, и указать нужные нам варианты генерации. Например мы хотим сгенерировать тесты и интерфейс.
gena --generate=tests,interface --scenarios-path=$(pwd) --template-path=$(pwd) --yaml-path=$(pwd) --interface-path=$(pwd)
А если нам нужно сгенерировать всё: тесты, интерфейс, схемы
gena --generate=tests,interface,schemas --scenarios-path=$(pwd) --template-path=$(pwd) --yaml-path=$(pwd) --interface-path=$(pwd) --schemas-path=$(pwd)
Также мы можем генерировать что-то по отдельности, просто укажите что вам нужно!
gena --generate=tests --scenarios-path=$(pwd) --template-path=$(pwd)
gena --generate=interface --scenarios-path=$(pwd) --yaml-path=$(pwd), --interface-path=$(pwd)
gena --generate=schemas --scenarios-path=$(pwd) --yaml-path=$(pwd) --schemas-path=$(pwd)
Help
usage: gena [-h] [--scenarios-path SCENARIOS_PATH] [--template-path TEMPLATE_PATH] [--api-template-path API_TEMPLATE_PATH] [--target-dir TARGET_DIR] [--md-example] [--ai] [--md-format MD_FORMAT] [--force]
[--reversed] [--generate GENERATE] [--yaml-path YAML_PATH] [--interface-path INTERFACE_PATH] [--schemas-path SCHEMAS_PATH]
Parse scenario file and generate scenario files from template.
options:
-h, --help show this help message and exit
--scenarios-path SCENARIOS_PATH
Path to the scenario file. Defaults to scenarios.md in the current directory.
--template-path TEMPLATE_PATH
Path to the test template file (used for tests generation).
--api-template-path API_TEMPLATE_PATH
Path to the api template file (used for api generation).
--target-dir TARGET_DIR
Directory to put or read generated test files. Defaults to the directory of scenarios-path.
--md-example Generate new md-file with scenarios.
--ai Use AI to generate test file names and subjects for tests (if not exsists).
--md-format MD_FORMAT
Name of the format to use. Available scenarios.md formats are: md_list_format, md_table_format
--force Force overwrite existing files.
--reversed Create scenarios file from test files.Tests should have same story and feature.
--generate GENERATE List of generate. Available components are: tests, interface, schemas. Example: tests,interface,schemas - generate all, tests - generate only tests. Delimiter - ","
--yaml-path YAML_PATH
Path to the swagger yaml file. Used for interface generating.
--interface-path INTERFACE_PATH
Path to the interface file. Used for interface generating.
--schemas-path SCHEMAS_PATH
Path to directory containing schemas. User for schemas generating.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for gena_test_generator-0.0.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7b02097744878cc935c5b937797ae2b242174be3cd8e38b2280bdd9a8d9e61ce |
|
MD5 | 50c1c4751f1a71a3c2053ad9aa26875b |
|
BLAKE2b-256 | cc9b2025e06bcc74d56058dd0ac2122dd77e846004f95b9ec67360a89ae04e1d |
Hashes for gena_test_generator-0.0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9cac6b9d910d420418eb3d205eaf2175740e99f3034b6bc62a51c76e16d5cc37 |
|
MD5 | 3a80070dfbae561a2e9bd5d70d54f011 |
|
BLAKE2b-256 | e93b2dc59b2ff1a94541916aa1887b963dd442046286fc246e2d2c8b6455d73d |