GitHub Actions
Test IT поддерживает интеграцию с GitHub Actions. Для настройки используется всего несколько строк кода и поддерживаются любые тестовые фреймворки и платформы.
Вы можете интегрировать как простые проекты (только с запуском тестов), так и сложные проекты (несколько отдельных проектов), которые запускаются в несколько независимых потоков.
Независимо от ваших требований процесс интеграции будет одинаков:
- Запуск автоматизированных тестов в пайплайнах GitHub Actions
- Генерация JUnit XML отчета с результатами автоматизированных тестов
- Загрузка результатов с помощью Test IT CLI
Используйте переменную окружения
Чтобы утилита Test IT CLI работала корректно, передавайте приватный токен через переменную окружения TMS_TOKEN
. О безопасной передаче токена читайте в разделе Безопасное хранение данных.
Стандартный запуск
Данная инструкция описывает запуск простого проекта в GitHub Actions. Она актуальна для любых тестовых фреймворков и платформ. В качестве примера описан запуск с помощью тестового фреймворка Pytest для Python.
Для быстрой и простой интеграции с Test IT вы можете использовать утилиту Test IT CLI
, которая позволяет загрузить все результаты автотестов с помощью одной команды.
Ниже представлен пример файла .python-app.yml
, который отвечает за работу пайплайнов в GitHub Actions (необходимо указать URL вашего ресурса):
# .python-app.yml
name: Python application
on:
push:
branches: [ "main" ]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.10
uses: actions/setup-python@v3
with:
python-version: "3.10"
# Install project dependencies
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
# Execute test and generate report
- name: Test with pytest
run: |
pytest --junitxml=results/test-results.xml src/tests.py
# Install Test IT CLI and submit test results to TMS
- name: Submit results
if: always()
run: |
pip install testit-cli
testit results import \
--url <YOUR_INSTANCE_URL> \
--project-id 5236eb3f-7c05-46f9-a609-dc0278896464 \
--configuration-id 15dbb164-c1aa-4cbf-830c-8c01ae14f4fb \
--testrun-name "GitHub test run" \
--results results/test-results.xml
Простым добавлением необходимых шагов вы можете запускать множество необходимых вам тестов и загружать их в Test IT. Больше информации вы можете найти в официальной документации.
Параллельный запуск
Test IT поддерживает параллельный запуск автоматизированных тестов в GitHub Actions. При этом добавляются дополнительные независимые шаги для создания, завершения тест-рана и запуска тестов.
Ниже представлен пример файла .python-app.yml
, который отвечает за работу пайплайнов в GitHub Actions (необходимо указать URL вашего ресурса и токен переменной):
# .python-app.yml
name: Python application
on:
push:
branches: [ "main" ]
permissions:
contents: read
jobs:
create:
runs-on: ubuntu-latest
outputs:
test-run-id: ${{ steps.create-testrun.outputs.test-run-id }}
steps:
# Install Test IT CLI, create testrun and save testrun id to variable
- name: Create testrun
id: create-testrun
run: |
pip install testit-cli
testit testrun create \
--url <YOUR_INSTANCE_URL> \
--project-id 5236eb3f-7c05-46f9-a609-dc0278896464 \
--token <TOKEN_VARIABLE> \
--testrun-name "GitHub test run" \
--output output.txt
ID=$(cat output.txt)
echo "test-run-id=$ID" >> $GITHUB_OUTPUT
test:
needs: create
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
ci_index: [0, 1, 2, 3]
ci_total: [4]
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.10
uses: actions/setup-python@v3
with:
python-version: "3.10"
# Install project dependencies
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
# Execute test and generate report
- name: Test with pytest
run: |
pytest --junitxml=results/test-results.xml src/tests.py
# Install Test IT CLI and submit test results to TMS
- name: Submit results
if: always()
run: |
pip install testit-cli
testit results upload \
--url <YOUR_INSTANCE_URL> \
--testrun-id $(testRunId) \
--configuration-id 15dbb164-c1aa-4cbf-830c-8c01ae14f4fb \
--results results/test-results.xml
env:
CI_TOTAL: ${{ matrix.ci_total }}
CI_INDEX: ${{ matrix.ci_index }}
complete:
needs: [create, test]
if: always()
runs-on: ubuntu-latest
steps:
# Install Test IT CLI and complete testrun
- name: Complete testrun
if: always()
run: |
pip install testit-cli
testit testrun complete \
--url <YOUR_INSTANCE_URL> \
--testrun-id $(testRunId)
Безопасное хранение данных
Для работы утилиты Test IT CLI вам необходимо использовать приватный токен для авторизации. Хранение данного токена и другой чувствительной информации в коде строго не рекомендуется, так как доступ к этой информации будет иметь любой у кого есть доступ к коду.
Используйте секреты GitHub для хранения чувствительной информации. Подробнее с секретами вы можете ознакомится в официальной документации.