temporal-python-testing
Тестирование Temporal workflows с помощью pytest и моков
Тесты Temporal workflow часто медленные или нестабильные. Этот навык предоставляет быстрые, детерминированные паттерны тестирования с использованием пропуска времени, мокирования активностей и проверки воспроизведения для надежных CI/CD пайплайнов.
Скачать ZIP навыка
Загрузить в Claude
Перейдите в Settings → Capabilities → Skills → Upload skill
Включите и начните использовать
Протестировать
Использование «temporal-python-testing». Создайте план тестирования для Temporal workflows с покрытием модульных, интеграционных и тестов воспроизведения.
Ожидаемый результат:
- Используйте WorkflowEnvironment с пропуском времени для быстрых модульных тестов workflow
- Мокируйте внешние зависимости в интеграционных тестах и проверяйте пути обработки ошибок
- Экспортируйте production истории и воспроизводите их против нового кода перед деплоем
Использование «temporal-python-testing». Как протестировать workflow, который имеет логику повторных попыток и несколько активностей?
Ожидаемый результат:
- Создайте тест с замокированными активностями для изоляции логики workflow
- Используйте ActivityEnvironment для тестирования обработки ошибок конкретной активности
- Проверьте поведение повторных попыток, подсчитывая вызовы активностей
- Тестируйте успешные и неуспешные пути с проверками
Использование «temporal-python-testing». Какие распространенные ошибки при тестировании Temporal workflows?
Ожидаемый результат:
- Вызов реальных внешних API вместо их мокирования
- Использование random() или datetime.now(), что ломает детерминированность воспроизведения
- Пропуск тестов воспроизведения перед деплоем изменений workflow
- Не использование пропуска времени для длительных тестов workflow
Аудит безопасности
БезопасноEducational documentation for Temporal workflow testing. Static scanner false positives: markdown code block backticks flagged as shell execution, legitimate docs URLs as hardcoded URLs, and test code patterns as cryptographic/C2 indicators. Previous Claude audit (skill-report.json) confirmed safe with no risk factors. All 149 findings are false positives from documentation patterns.
Факторы риска
⚙️ Внешние команды (125)
🌐 Доступ к сети (6)
📁 Доступ к файловой системе (4)
Оценка качества
Что вы можете построить
Добавить быстрые модульные тесты
Создавайте быстрые тесты workflow и активностей с пропуском времени, которые выполняются за миллисекунды вместо часов.
Валидировать интеграционные потоки
Мокируйте внешние сервисы и проверяйте сложные пути оркестрации workflow с инъекцией ошибок.
Запускать проверки воспроизведения
Подтверждайте детерминированность workflow перед деплоем и проверяйте совместимость версий.
Попробуйте эти промпты
Покажите минимальную настройку pytest для тестирования workflow с пропуском времени и простой активностью. Включите фикстуры и проверки.
Предоставьте пример интеграционного теста, который мокирует активности и проверяет логику ветвления workflow на основе результатов активностей.
Объясните, как воспроизводить истории workflow из production и обнаруживать недетерминированные изменения, которые могут сломать выполняющиеся workflow.
Опишите полный план CI с маркерами pytest, порогами покрытия и автоматизированными тестами воспроизведения для безопасных деплоев.
Лучшие практики
- Используйте пропуск времени для всех модульных тестов workflow, чтобы выполнять месячные workflow за секунды
- Мокируйте внешние зависимости в интеграционных тестах для изоляции логики workflow
- Запускайте тесты воспроизведения перед деплоем любых изменений workflow для обеспечения детерминированности
Избегать
- Вызов реальных внешних API внутри тестов workflow вместо их мокирования
- Использование random() или datetime.now() в коде workflow безTemporal helpers
- Пропуск тестов воспроизведения после значительных рефакторингов или изменений логики workflow
Часто задаваемые вопросы
Какие версии Python поддерживаются?
Есть ли ограничения на размер тестов?
Могу ли я интегрировать это с существующими настройками pytest?
Имеет ли этот навык доступ к моим данным или учетным данным?
Что делать, если тесты не проходят из-за недетерминированности?
Чем это отличается от сквозных тестов?
Сведения для разработчиков
Автор
wshobsonЛицензия
MIT
Репозиторий
https://github.com/wshobson/agents/tree/main/plugins/backend-development/skills/temporal-python-testingСсылка
main
Структура файлов