{"id":15144474,"url":"https://github.com/slxiao/rts","last_synced_at":"2025-10-23T22:30:33.863Z","repository":{"id":107156143,"uuid":"135270016","full_name":"slxiao/rts","owner":"slxiao","description":":blue_heart: Regression Test Selection to dynamically select impacted regression tests necessary to run per file changes, for Robot Framework.","archived":false,"fork":false,"pushed_at":"2018-11-25T03:52:28.000Z","size":143,"stargazers_count":18,"open_issues_count":2,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-30T21:11:10.734Z","etag":null,"topics":["python","regression-test-selection","robotframework"],"latest_commit_sha":null,"homepage":"","language":"Python","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/slxiao.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-05-29T09:04:59.000Z","updated_at":"2023-07-18T23:59:18.000Z","dependencies_parsed_at":null,"dependency_job_id":"aeba0fa7-e4c9-4f74-9e7a-9139c533f64f","html_url":"https://github.com/slxiao/rts","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slxiao%2Frts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slxiao%2Frts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slxiao%2Frts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slxiao%2Frts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/slxiao","download_url":"https://codeload.github.com/slxiao/rts/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237890775,"owners_count":19382562,"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":["python","regression-test-selection","robotframework"],"created_at":"2024-09-26T10:41:36.090Z","updated_at":"2025-10-23T22:30:33.472Z","avatar_url":"https://github.com/slxiao.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Introduction\nRTS is for regression test selection. It's used for selecting only the affected regression tests based on file dependency. Specifically, only the tests that depend on the files that are changed in the current commit will be selected to execution. With RTS, testing resource is reduced and test feadback time is shortened, which benefits both developers and testers.\n\nDifferent test automation projects using different programming languages would need different RTS techniques. The RTS technique presented here, named **rts**, is suitable for [Robot Framework](http://robotframework.org) based test automation projects. Robot Framework is a powerful [test automation framework]() widely used in the industry.\n\n# Usage\nThere are two ways to use **rts**.\n\nFirst way is in Python, where you can:\n```python\nfrom rts import RTS\n\nprint RTS(\".\", \".\", [\"suite1\", \"suite2\"]).select([\"x.robot\", \"y.py\"])\n\n```\nExample output might be\n```python\n[\"suite1\"] #selected suites are printed. only suite1 depends on x.robot or y.py. suite2 not depend on any of the changes.\n```\nSecond way is in Shell, where you can:\n```shell\npython rts.py . . '[\"suite1\", \"suite1\"]' '[\"x.robot\", \"y.py\"]'\n\n```\nExample output is same as above.\n\nNote:\n - **rts** only supports `.robot` and `.py` files. **rts** supports dependency between two robot files, and dependency between a robot file and a python file. However, it does not detect dependency between two python files.\n - **rts** can detect suite-level dependency. It cannot detect case-level dependency or keyword-level dependency.\n# Development\n**rts** is using TDD(Test-Driven Development). Use `make ut` to run all unit test cases.\n\u003e make ut\n\n# Support\n**rts** is developed and maintained by [slxiao](https://github.com/slxiao). Refer to [gitlab issues](https://github.com/slxiao/rts/issues) if you meet any bugs or need feature enhancements.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslxiao%2Frts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fslxiao%2Frts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslxiao%2Frts/lists"}