{"id":17854165,"url":"https://github.com/federicobond/eth-mutants","last_synced_at":"2025-03-20T11:36:31.352Z","repository":{"id":57230764,"uuid":"144796137","full_name":"federicobond/eth-mutants","owner":"federicobond","description":"👾 A mutation testing tool for Solidity contracts","archived":false,"fork":false,"pushed_at":"2018-08-16T01:29:20.000Z","size":29,"stargazers_count":48,"open_issues_count":14,"forks_count":5,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-10-22T16:21:58.447Z","etag":null,"topics":["mutation-testing","solidity","testing-tools"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/federicobond.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-08-15T02:33:47.000Z","updated_at":"2023-07-10T14:08:39.000Z","dependencies_parsed_at":"2022-09-04T15:04:31.996Z","dependency_job_id":null,"html_url":"https://github.com/federicobond/eth-mutants","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/federicobond%2Feth-mutants","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/federicobond%2Feth-mutants/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/federicobond%2Feth-mutants/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/federicobond%2Feth-mutants/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/federicobond","download_url":"https://codeload.github.com/federicobond/eth-mutants/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244607017,"owners_count":20480529,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["mutation-testing","solidity","testing-tools"],"created_at":"2024-10-28T00:42:02.746Z","updated_at":"2025-03-20T11:36:31.049Z","avatar_url":"https://github.com/federicobond.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"eth-mutants\n===========\n\neth-mutants is a mutation testing tool for Solidity contracts.\n\n## What is mutation testing?\n\nIt about performing changes to your code (like replacing a `\u003c` for a `\u003c=`) and\nrunning your tests. If they pass we say that the mutation lived/survived, which\nmeans that you werent checking the condition and you should ensure there is a\ntest case covering it.\n\nIt's a great companion to existing test coverage tools, ensuring that you are\nnot only running every line, but actually asserting logic about the control\nflow around them.\n\nFor more information, check out the Wikipedia page on \n[mutation testing](https://en.wikipedia.org/wiki/Mutation_testing).\n\n## Installation\n\n```\nnpm install eth-mutants\n```\n\n## Usage\n\n```\nThe `preflight` command will show the number of possible mutations found\nand print some compact diffs for each mutation. Use this to understand\nhow long it may take to visit all mutations and please report any invalid \nones.\n```\n\nThe `test` command will start applying mutations and running your tests to\ncheck if they pass. It will report the result of each mutation.\n\n```\neth-mutants test\n```\n\nThis tools makes some important assumptions about your workspace, which should\nhold true for most Truffle-based projects, but I plan on adding options to\noverride them soon:\n\n * Your contract files are in the `contracts/` directory\n * You run your tests with `npm test` which returns a non-zero error code in\n   case of failure.\n\n## Mutators\n\nThe only mutation implemented at the moment is called `boundary-condition`\nand replaces `\u003c` and `\u003e` for `\u003c=` and `\u003e=` and vice-versa. Contributions for\nmutators are especially welcomed.\n\n## Prior Art\n\n * [PIT](http://pitest.org/) is a mutation testing tool for Java with a long\n   track record.\n * [mutmut](https://mutmut.readthedocs.io/en/latest/) is a mutation testing\n   tool for Python.\n\n## Author\n\nFederico Bond\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffedericobond%2Feth-mutants","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffedericobond%2Feth-mutants","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffedericobond%2Feth-mutants/lists"}