Гейт для вашего CI/CD-пайплайна на базе ИИ CLI для тестирования.
Добавьте testsprite в GitHub Actions, GitLab CI или любой пайплайн, способный выполнить шаг в shell. Он аутентифицируется через переменную окружения, запускает ваш набор тестов на реальном развёрнутом окружении и завершается со стабильным, предсказуемым кодом — так что сломанная сборка проваливает именно сборку, а не следующий стендап.
Работает в любом CI, на любом раннере, в любом shell
Неинтерактивен по своей природе
TESTSPRITE_API_KEY=sk-... testsprite setup --from-env --yes --agent claude — без запросов, без входа через браузер, работает в headless-раннере.
Один шаг, любой пайплайн
testsprite test run --all --project <id> --wait --output json в виде одного шага CI — разберите JSON или просто проверьте код выхода.
Предсказуемые коды выхода
Стабильные, документированные коды выхода означают, что ваш пайплайн может гейтить мерж по реальному результату, а не по разбору текстовых логов в попытке угадать, что произошло.
Dry-run перед коммитом
--dry-run прогоняет логику вашего пайплайна оффлайн на тестовых данных, так что вы можете настроить шаг ещё до того, как он коснётся реального окружения.
# .github/workflows/verify.yml
- name: Verify with TestSprite
env:
TESTSPRITE_API_KEY: ${{ secrets.TESTSPRITE_API_KEY }}
run: |
npm install -g @testsprite/testsprite-cli
testsprite setup --from-env --yes
testsprite test run --all --project prj_8f2a --wait --output json
# exits non-zero on a real failure — the merge gate fails with it
Пусть мерж-гейт что-то значит
Сборка, которая проходит только потому, что её на самом деле никто не проверял, — не проходящая сборка. Каждый запуск пайплайна тестирует ваше настоящее развёрнутое окружение — реальный браузер, реальные вызовы API — и падает по реальной причине.
Создано для каждого этапа пайплайна
PR, ночной прогон или релиз
Запускайте полный набор на каждом PR, меньший smoke-набор по ночам или всё целиком перед релизом — одна и та же команда, разные --project и план.
Пакетные перезапуски
testsprite test rerun --all --project <id> заново проверяет всё после подозрительного на нестабильность прогона, не перезапуская весь пайплайн.
Бесплатная версия для сообщества
Предлагаем бесплатную версию для сообщества, делая наш продукт доступным для всех.
Сравнение двух прогонов
testsprite test diff <runId1> <runId2> показывает, что именно изменилось между успешной сборкой и провалившейся.
Нам доверяют компании по всему миру
"TestSprite предлагает богатую генерацию тест-кейсов, четкую структуру и легко читаемый код. Он также поддерживает простую онлайн-отладку с возможностью быстрого расширения путем генерации новых тест-кейсов."
"Автоматизация TestSprite помогает нам сократить огромное количество ручной работы. Разработчики могут легко обнаруживать и устранять ошибки на более ранних этапах процесса разработки."
Часто задаваемые вопросы
Как CLI аутентифицируется в headless CI-раннере?
Задайте TESTSPRITE_API_KEY как секрет, затем запустите testsprite setup --from-env --yes --agent claude (или вашего агента на выбор). Ни интерактивного запроса, ни входа через браузер — он создан именно для этого.
Работает ли это конкретно с GitHub Actions?
Да, и с любым CI, способным выполнить шаг в shell — GitLab CI, CircleCI, Jenkins, Buildkite. Это Node.js CLI, устанавливаемый через npm; если ваш раннер это умеет, он сможет запустить TestSprite.
На чём конкретно строится гейт в пайплайне?
На реальном запуске тестов на вашем развёрнутом окружении — тесты браузера через Playwright, тесты API с учётом зависимостей — с результатом в виде стабильного, документированного кода выхода. Ваш существующий шаг «провалить джобу при ненулевом коде» просто работает.
Можно ли протестировать настройку пайплайна до того, как он заработает по-настоящему?
Да — --dry-run прогоняет логику ваших тестов оффлайн на тестовых данных, так что вы можете убедиться, что шаг настроен правильно, прежде чем направить его на реальное окружение.
Что происходит, когда CI обнаруживает настоящую регрессию?
К этому прогону прикрепляется пакет данных о сбое (сбойный шаг, скриншот, снимок DOM, гипотеза о первопричине, рекомендация по исправлению) — заберите его командой testsprite test failure get <testId> из логов джобы или на следующем шаге.