Repolode
mbj

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. 1

    Установите gem для интеграции с RSpec

    gem install mutant-rspec
  2. 2

    Запустите mutant для объекта в своём коде

    mutant run --use rspec --usage opensource --require ./lib/person 'Person#adult?'

Что важно знать

  • Поддерживается только в Linux и macOS.
  • Бесплатно только для проектов с открытым исходным кодом; для коммерческого использования нужна платная подписка.
  • В README не указана чёткая лицензия с открытым исходным кодом (в метаданных указано NOASSERTION).

В подборках

Темы

#mutation-testing#ruby#testing#rspec#minitest#code-quality#rails#code-quality-analyzer#code-review#coverage

Частые вопросы

Что такое 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 обновляется ежедневно.

Похожие проекты

Навык для coding agent, который заставляет ИИ-агентов подтверждать корректность кода: сначала составить план тестирования, пройти серию проверок и подготовить отчёт с доказательствами.

757+4 за неделю59PythonMITОбновлён 3 дня назад