Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Mutation testing system
| Date | Stars |
|---|---|
| 2026-07-24 | 1357 |
| 2026-07-25 | 1358 |
| 2026-07-28 | 1358 |
| 2026-07-30 | 1358 |
| 2026-08-06 | 1358 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
20.0
growth rate 0.00%/day
mutmut - python mutation tester
===============================
.. image:: https://github.com/boxed/mutmut/actions/workflows/tests.yml/badge.svg
:target: https://github.com/boxed/mutmut/actions/workflows/tests.yml
.. image:: https://readthedocs.org/projects/mutmut/badge/?version=latest
:target: https://mutmut.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
Mutmut is a mutation testing system for Python, with a strong focus on ease
of use. If you don't know what mutation testing is try starting with
`this article <https://kodare.net/2016/12/01/mutmut-a-python-mutation-testing-system.html>`_.
Some highlight features:
- Found mutants can be applied on disk with a simple command making it very
easy to work with the results
- Remembers work that has been done, so you can work incrementally
- Knows which tests to execute, speeding up mutation testing
- Interactive terminal based UI
- Parallel and fast execution
.. image:: browse_screenshot.png
If you want to mutate code outside of functions, you can try using mutmut 2,
which has a different execution model than mutmut 3+.
Requirements
------------
Mutmut must be run on a system with `fork` support. This means that if you want
to run on windows, you must run inside WSL.
Install and run
---------------
You can get started with a simple:
.. code-block:: console
pip install mutmut
mutmut run
This will run pytest on tests in the "tests" or "test" folder and
it will try to figure out where the code to mutate is.
You can stop the mutation run at any time and mutmut will restart where you
left off.
To work with the results, use `mutmut browse` where you can see the mutants,
retest them when you've updated your tests.
You can also write a mutant to disk from the `browse` interface, or via
`mutmut apply <mutant>`. You should **REALLY** have the file you mutate under
source code control and committed before you apply a mutant!
If during the installation you get an error for the `libcst` dependency mentioning the lack of a rust compiler on your system, it is because your architecture does not have a prebuilt binary for `libcst` and it requires both `rustc` and `cargo` from the `rust toolchain <https://www.rust-lang.org/tools/install>`_ to be built. This is known for at least the `x86_64-darwin` architecture.
Wildcards for testing mutants
-----------------------------
Unix filename pattern matching style on mutants is supported. Example:
.. code-block:: console
mutmut run "my_module*"
mutmut run "my_module.my_function*"
In the `browse` TUI you can press `f` to retest a function, and `m` to retest
an entire module.
Configuration
-------------
In `setup.cfg` in the root of your project you can configure mutmut if you need to:
.. code-block:: ini
[mutmut]
source_paths=src/
pytest_add_cli_args_test_selection=tests/
If you use `pyproject.toml`, you must specify the paths as array in a `tool.mutmut` section:
.. code-block:: toml
[tool.mutmut]
source_paths = [ "src/" ]
pytest_add_cli_args_test_selection= [ "tests/" ]
See below for more options for configuring mutmut.
"also copy" files
~~~~~~~~~~~~~~~~~
To run the full test suite some files are often needed above the tests and the
source. You can configure to copy extra files that you need by adding
directories and files to `also_copy` in your `setup.cfg`:
.. code-block:: ini
also_copy=
iommi/snapshots/
conftest.py
Limit stack depth
~~~~~~~~~~~~~~~~~
In big code bases some functions are called incidentally by huge swaths of the
codebase, but you really don't want tests that hit those executions to count
for mutation testing purposes. Incidentally tested functions lead to slow
mutation testing as hundreds of tests can be checked for things that should
have clean and fast unit tests, and it leads to bad test suites as any
introduced bug in those base functions will lead to many tests that fail which
are hard to underExcerpt of 17,717 characters
Read on GitHubWould you bet a product on this? Bounded 0–100 and slow moving.
matched fp:6732807af643e8e9, topic:testing