Навык для coding agent, который заставляет ИИ-агентов подтверждать корректность кода: сначала составить план тестирования, пройти серию проверок и подготовить отчёт с доказательствами.
mbj/mutant
Мутационное тестирование Ruby: изменяет код и показывает, какие изменения ваш набор тестов не обнаруживает.
- Звёзды
- 2,212
- Форки
- 163
- Открытые issues
- 127
- Последний коммит
- вчера
Что это?
Mutant — инструмент для мутационного тестирования Ruby. Он систематически вносит в код небольшие изменения — например, заменяет операторы, удаляет инструкции или меняет возвращаемые значения, — а затем запускает тесты для каждого изменения. Мутации, на которых тесты не падают, отмечаются как живые: это указывает на поведение, которое ваши тесты на самом деле не проверяют.
Для каждой живой мутации нужно принять решение: либо упростить код, потому что тесты уже фиксируют правильное поведение, либо добавить недостающий тест. Это особенно полезно, когда код или тесты сгенерированы инструментами AI: успешное прохождение тестов само по себе не означает, что они проверяют что-то важное.
Mutant интегрируется с RSpec, Minitest и Test::Unit и работает с Rails-приложениями, изолируя базы данных для каждого рабочего процесса. Он поддерживает инкрементальные запуски в CI, сохраняет результаты сессий для последующего просмотра и доступен бесплатно для проектов с открытым исходным кодом; для коммерческого использования нужна платная лицензия.
Ключевые возможности
- 01Вносит в код Ruby мутации операторов, инструкций и возвращаемых значений, а затем запускает тесты для каждой из них.
- 02Находит живые мутации, указывающие на непроверенное поведение.
- 03Интегрируется с RSpec, Minitest и Test::Unit.
- 04Поддерживает Rails с изоляцией баз данных между параллельными рабочими процессами для PostgreSQL и SQLite.
- 05Поддерживает инкрементальный режим для запусков в CI и сохраняет историю сессий, чтобы можно было просматривать предыдущие результаты.
Сценарии использования
- Проверка того, действительно ли тесты, написанные AI-ассистентами, проверяют поведение кода.
- Поиск слабых мест в существующем наборе тестов Ruby перед рефакторингом.
- Инкрементальное мутационное тестирование в CI только для изменённого кода.
Быстрый старт
- 1
Установите gem для интеграции с RSpec
gem install mutant-rspec - 2
Запустите mutant для объекта в своём коде
mutant run --use rspec --usage opensource --require ./lib/person 'Person#adult?'
Что важно знать
- Поддерживается только в Linux и macOS.
- Бесплатно только для проектов с открытым исходным кодом; для коммерческого использования нужна платная подписка.
- В README не указана чёткая лицензия с открытым исходным кодом (в метаданных указано NOASSERTION).
В подборках
Темы
Частые вопросы
- Что такое mutant?
- Мутационное тестирование Ruby: изменяет код и показывает, какие изменения ваш набор тестов не обнаруживает. Mutant — инструмент для мутационного тестирования Ruby. Он систематически вносит в код небольшие изменения — например, заменяет операторы, удаляет инструкции или меняет возвращаемые значения, — а затем запускает тесты для каждого изменения. Мутации, на которых тесты не падают, отмечаются как живые: это указывает на поведение, которое ваши тесты на самом деле не проверяют.
- mutant можно использовать бесплатно? Какая у него лицензия?
- mutant распространяется с открытым исходным кодом под лицензией Other. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- mutant всё ещё поддерживается?
- Активно поддерживается. Последний коммит в mutant — 6 нояб. 2026 г..
- Для чего можно использовать mutant?
- Проверка того, действительно ли тесты, написанные AI-ассистентами, проверяют поведение кода. Поиск слабых мест в существующем наборе тестов Ruby перед рефакторингом. Инкрементальное мутационное тестирование в CI только для изменённого кода.
- Как установить mutant?
- Установите gem для интеграции с RSpec: gem install mutant-rspec Запустите mutant для объекта в своём коде: mutant run --use rspec --usage opensource --require ./lib/person 'Person#adult?'
- Где скачать mutant?
- Исходный код и инструкции по установке — на GitHub: https://github.com/mbj/mutant
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Готовый к запуску набор линтеров и форматтеров, который проверяет и исправляет исходный код как GitHub Action или отдельный контейнер.
CLI для Python, который измеряет долю функций, классов, методов и модулей с docstring и поддерживает пороговые условия для CI.
Бесплатная библиотека для измерения покрытия Java-кода, которая показывает, какие части байткода выполняются во время тестов.
Пакет Python, который отправляет результаты coverage.py в coveralls.io и публикует статистику покрытия онлайн.
GitLab Community Edition для самостоятельного размещения: веб-приложение на Ruby on Rails для управления Git-репозиториями, ревью кода, CI/CD и задачами.