{"id":16790562,"url":"https://github.com/sebasg22/nx-mutation","last_synced_at":"2025-03-22T01:30:23.479Z","repository":{"id":38700503,"uuid":"205276264","full_name":"SebasG22/nx-mutation","owner":"SebasG22","description":null,"archived":false,"fork":false,"pushed_at":"2023-01-07T09:30:24.000Z","size":14784,"stargazers_count":5,"open_issues_count":24,"forks_count":0,"subscribers_count":4,"default_branch":"1.jest","last_synced_at":"2025-03-18T06:51:22.671Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SebasG22.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-08-30T00:50:47.000Z","updated_at":"2022-12-09T07:37:42.000Z","dependencies_parsed_at":"2023-02-06T19:32:23.634Z","dependency_job_id":null,"html_url":"https://github.com/SebasG22/nx-mutation","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/SebasG22%2Fnx-mutation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SebasG22%2Fnx-mutation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SebasG22%2Fnx-mutation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SebasG22%2Fnx-mutation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SebasG22","download_url":"https://codeload.github.com/SebasG22/nx-mutation/tar.gz/refs/heads/1.jest","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244893279,"owners_count":20527558,"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":[],"created_at":"2024-10-13T08:30:03.416Z","updated_at":"2025-03-22T01:30:22.596Z","avatar_url":"https://github.com/SebasG22.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/nrwl/nx/master/nx-logo.png\" width=\"100\"\u003e\u003c/p\u003e\n\n🔎 **Nx is a set of Extensible Dev Tools for Monorepos.**\n\n# Nx Mutation Testing\n\nIt is very common that when a project grows rapidly, it is sought to minimize the amount of errors that can be injected into production code.\n\n### Context\nThe development team or the rockstar developer always seeks to have a very good result in the coverage of tests but this does not mean that this does not mean that it is 100% free of bugs or that the tests are strong to changes.\n\n\nTo address that, you opt for techniques such as mutation testing which seeks to generate different variations (mutations) of our tests and check how fragile the project changes.\n\n### What is mutation testing ?\n\nMutation testing is a fault-based testing technique where variations of a software program are subjected to the test dataset. This is done to determine the effectiveness of the test set in isolating the deviations.[1]\n\n### What variations does apply ?\nThe most common are: \n\n- Arithmetic operator replacement (+,-,/,*,%)\n- Logical connector replacement (\u0026\u0026, ||, ===,===)\n- Statement removal\n- Relational operator replacement (\u003c=, \u003e=)\n- Absolute value insertion, etc. ( value)\n\n[See Complete List](https://github.com/stryker-mutator/stryker-handbook/blob/master/mutator-types.md)\n\nIf the test survives a variation we say that the generated mutant survived.\n\n## Which tools are available ?\n\nOne of the most common tools it's stryker, It support many programming languages:\n\n- Javascript\n- .NET\n-\n\nNotes:\n\n- Mutation testing does not replace unit tests, rather they prove how resistent they are to changes.\n\n- Mutation testing checks the effectiveness of the unit tests against the different variations, this means that it is based on the unit tests.\n\n\nThis repository contains practical examples of using the Sticker.io tool an an angular builder to mutation testing capabilites to Nx Workspaces.\n\n## Adding mutation testing to your workspace\n\nNx supports  mutation testing as part of their core packages.\n\nYou need add to your workspace:\n\n- [Stryker](https://angular.io)\n  - `ng add @nrwl/stryker`\n\n## Generate an application\n\nRun `ng g @nrwl/angular:app my-app` to generate an application.\n\n## Start using Stryker\n\nThere are two ways to use stryker in your project, one is with the `stryker.config.js` or use it over `angular.json`.\n\n### Generating stryker.config.js\n\nRun `ng g stryker my-app` to generate the stryker config for `my-app`.\n\n### Modify angular json\nYou can modify the `angular.json - mutate` target to pass it the configuration without explicit use `stryker.config.js`\n\n\u003e It accepts most of the same parameters.\n\n## Running mutation tests\n\nRun `ng run my-app:mutate` to start the mutants.\n\n## How to use on CI env ?\nRun `ng affected --target=mutate`\n\n## Further help\n\nVisit the [Nx Documentation](https://nx.dev/angular) to learn more.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsebasg22%2Fnx-mutation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsebasg22%2Fnx-mutation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsebasg22%2Fnx-mutation/lists"}