Интеграция облачной версии платформы ТестОпс с GitHub Actions позволяет автоматизировать запуск тестов и сбор результатов в единой системе. В этом руководстве мы пошагово настраиваем трёхстороннюю связку: результаты запуска GitHub Actions отправляются в TMS ТестОпс, из ТестОпс можно инициировать запуски workflow на GitHub, а с помощью MCP обеспечивается интеллектуальная интеграция и автоматизация процессов между всеми системами. В статье рассматриваем требования к окружению, генерацию необходимых токенов, изменение конфигурации рабочего процесса, настройку параметров окружения и возможные ошибки.
mkdir ~/workspace/<project-name>
cd ~/workspace/<project-name>git initnpm init -y # флаг `-y` = «ответить “yes” на все вопросы»npm i --save-dev jest jest-allure2-reporternpm i --save-dev jest @shelex/jest-allure2-reporter"scripts": {
"test": "jest --reporters=\"default\" --reporters=\"@shelex/jest-allure2-reporter\" --outputDirectory=allure-results"
}// hello.test.js
describe('Пример самого простого теста', () => {
it('всегда проходит', () => {
expect(true).toBe(true);
});
});npm testssh-keygen -t ed25519 -C "your_email@example.com"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
cat ~/.ssh/id_ed25519.pub<div class="ql-code-block" data-language="plain"> git remote add origin git@github.com:`<login>`/`<repo>`.git</div><div class="ql-code-block" data-language="plain"> git add .</div><div class="ql-code-block" data-language="plain"> git commit -m "Первый тест"</div><div class="ql-code-block" data-language="plain"> git branch -M main</div><div class="ql-code-block" data-language="plain"> git push -u origin main</div>git remote add origin git@github.com:`<login>`/`<repo>`.git
git add .
git commit -m "Первый тест"
git branch -M main
git push -u origin mainhttps://qatools.ru/images/blog/guide-cursormcp+github+testops-pt1/screenshot-3.pngcd ~/workspace/<project-name> # Указываем имя для папки проектаmkdir -p .github/workflows
nano .github/workflows/tests.yml # откроется редактор nano. Можно заменить на любой редактор (Cursor, VS Code).🔦 Примечание: В разделе, описывающем событие workflow_dispatch, нужно задать два специальных параметра запуска: ALLURE_JOB_RUN_ID и ALLURE_USERNAME. Эти параметры служебные – они заполняются системой ТестОпс при запуске из интерфейса. Если их не добавить, запуск рабочего процесса из ТестОпс будет невозможен и выйдет ошибка 422. О том, как с ними работать, рассказываем в разделе про параметризацию окружения.
name: Test & Report # имя рабочего процесса видно во вкладке Actions
# Когда запускать
on:
push: # каждое изменение кода
workflow_dispatch: # запуск «по кнопке» (нужен для ТестОпс)
inputs:
ALLURE_JOB_RUN_ID:
description: ":)" # служебные поля ТестОпс, оставляем
ALLURE_USERNAME:
description: ":)"
# Переменные окружения
env:
ALLURE_ENDPOINT: https://testing.qatools.cloud
ALLURE_PROJECT_ID: 7 # ← важно заменить на реальный ID проекта
ALLURE_RESULTS: allure-results
ALLURE_TOKEN: ${{ secrets.ALLURE_TOKEN }}
jobs:
test:
runs-on: ubuntu-latest # можно указать любую версию ОС
steps:
- name: Check Allure Token
run: |
if [ -z "$ALLURE_TOKEN" ]; then
echo "ALLURE_TOKEN secret is missing"
exit 1
fi
- name: Клонируем код
uses: actions/checkout@v3
- name: Ставим Node
uses: actions/setup-node@v3
with:
node-version: 18
- name: Ставим зависимости
run: npm ci
- name: Ставим allurectl
uses: allure-framework/setup-allurectl@v1
with:
allure-endpoint: ${{ env.ALLURE_ENDPOINT }}
allure-token: ${{ env.ALLURE_TOKEN }}
allure-project-id: ${{ env.ALLURE_PROJECT_ID }}
- name: Запускаем тесты
run: allurectl watch -- npm testgit add .github/workflows/tests.yml
git commit -m "CI: добавлен workflow Jest + Allure"
git pushenv:
TESTS_BROWSER: ${{ github.event.inputs.TESTS_BROWSER }}
PRODUCT_VERSION: ${{ github.event.inputs.PRODUCT_VERSION }}💡 Совет: Следует задавать одинаковые значения по умолчанию параметров и в GitHub (в YAML inputs default) и в ТестОпс. Это обеспечит единообразие – при запуске, инициированном с любой стороны, по умолчанию будет одно и то же окружение. Конечно, при запуске есть возможность изменить эти значения вручную.
Если проблема не поддаётся выявлению, стоит заглянуть в раздел Устранение неполадок официальной документации ТестОпс. В случае интеграции с облачной версией следует обратиться в техническую поддержку. Специалисты помогут разобраться и найти решение.