{"id":13355121,"url":"https://github.com/alexb52/retest","last_synced_at":"2025-05-15T16:02:24.825Z","repository":{"id":36991692,"uuid":"291397721","full_name":"AlexB52/retest","owner":"AlexB52","description":"A trusty CLI companion to monitor file changes and automatically run the corresponding Ruby specs. Ready to assist on any Ruby project, no setup needed!","archived":false,"fork":false,"pushed_at":"2025-03-17T21:25:04.000Z","size":19362,"stargazers_count":183,"open_issues_count":10,"forks_count":4,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-01T15:52:11.902Z","etag":null,"topics":["bundler","cli","file-changes","hanami","rails","refactoring","refactoring-tools","ruby","task-runner","test","testing","testing-tools","tests"],"latest_commit_sha":null,"homepage":"","language":"Ruby","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/AlexB52.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2020-08-30T04:11:46.000Z","updated_at":"2025-03-30T00:26:42.000Z","dependencies_parsed_at":"2024-02-25T21:27:02.706Z","dependency_job_id":"bb12d4f3-6577-416d-95d1-0bf68c23d02e","html_url":"https://github.com/AlexB52/retest","commit_stats":{"total_commits":197,"total_committers":7,"mean_commits":"28.142857142857142","dds":0.5431472081218274,"last_synced_commit":"e2b8912dc4459355bd1572fdea5be8386f81dcbf"},"previous_names":[],"tags_count":52,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexB52%2Fretest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexB52%2Fretest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexB52%2Fretest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexB52%2Fretest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AlexB52","download_url":"https://codeload.github.com/AlexB52/retest/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247760410,"owners_count":20991489,"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":["bundler","cli","file-changes","hanami","rails","refactoring","refactoring-tools","ruby","task-runner","test","testing","testing-tools","tests"],"created_at":"2024-07-29T21:02:13.479Z","updated_at":"2025-04-08T01:34:10.720Z","avatar_url":"https://github.com/AlexB52.png","language":"Ruby","readme":"[![Gem Version](https://badge.fury.io/rb/retest.svg)](https://badge.fury.io/rb/retest)\n\n# Retest: Your Go-To Testing Assistant for Ruby Projects\n\nRetest is the ultimate CLI tool for Ruby developers, designed to make your testing workflow seamless and efficient. It monitors file changes and automatically runs relevant tests, ensuring that your code remains solid as you refactor and develop.  \n\nWith **zero setup required**, Retest works right out of the box on any Ruby project—no changes to your Gemfile, no unnecessary repo clutter, and no configuration headaches. It's lightweight, dev-centric, and ready to integrate into your workflow instantly.  \n\n## 🚀 **What Makes Retest Awesome?**\n\n- **Plug-and-Play:** Start testing immediately—no installation hassles or setup scripts.\n- **Project Independence:** Works with any Ruby project, no Gemfile modifications required.\n- **Time-Saving Automation:** Automatically identifies and runs relevant tests as you code.\n- **Customizable Workflows:** Tailor commands to your needs with placeholders, options, and interactive features.\n- **Sound Notifications:** Get audible feedback for test results.\n\n## 🎥 Demo\n\nDiscover Retest main functionalities in this small presentation\n\nhttps://github.com/user-attachments/assets/5491bcad-134f-4843-9a6f-a474a1394e87\n\n## 💡 **Why Use Retest?**\n\nTesting frequently is the cornerstone of safe refactoring. Retest eliminates the friction of manual test execution by running tests after every file change, helping you stay just one `cmd + z` away from green tests.\n\n## 🔧 **Quick Installation**\n\nInstall Retest globally in seconds:  \n\n```bash\ngem install retest\n```\n\nNo need to add it to your Gemfile—just install and go!\n\n## 🛠️ **Key Features**\n\n### **Flexible Commands**  \nRun tests with your preferred commands, placeholders, or patterns:  \n```bash\nretest 'bin/rails test \u003ctest\u003e \u0026\u0026 rubocop \u003cchanged\u003e' # Flexible placeholders\nretest --all                                        # Run all tests on every file change\nretest --diff origin/main                           # Test changes from a branch\n```\n\n### **Interactive Companion**  \nStay in control with an interactive shell for test management. Start Retest and enter `h` to explore available commands.  \n\n```\nSetup: [RAKE]\nCommand: 'bundle exec rake test TEST=\u003ctest\u003e'\nWatcher: [WATCHEXEC]\n\nLaunching Retest...\nReady to refactor! You can make file changes now\n\nType interactive command and press enter. Enter 'h' for help.\n\u003e h\n\n* 'h', 'help'              # Prints help.\n* 'p', 'pause'             # Pauses Retest. Tests aren't run on file change events until unpaused.\n* 'u', 'unpause'           # Unpauses Retest.\n* \u003cENTER\u003e                  # Runs last changed triggered command.\n* 'ra, 'run all'           # Runs all tests.\n* 'f', 'force'             # Forces a selection of test to run on every file change.\n* 'r', 'reset'             # Disables forced selection.\n* 'd', 'diff' [GIT BRANCH] # Runs matching specs that changed from a target branch.\n* 'c'                      # Clears window.\n* 'e', 'exit'              # Exits Retest.\n\n```\n### **Supports Multiple Watchers**  \nRetest ships with [Listen](https://github.com/guard/listen) for file monitoring but can use the more performant [Watchexec](https://github.com/watchexec/watchexec) if installed.  \n\nTo force a specific watcher:  \n```bash\nretest -w watchexec\n```\n\n## 🐳 **Works with Docker**\n\nRetest can run inside Docker containers, ensuring your testing workflow stays consistent across environments.  \n\n```bash\n# Inside your container shell\ngem install retest\nretest 'bundle exec rails test \u003ctest\u003e'\n```\n\n## ❤️ **Contributing**\n\nGot feedback or ideas? Join the discussion for Retest 2.0 and share your thoughts:  \n[Discussion - Retest V2.0 - Interactive Panel](https://github.com/AlexB52/retest/discussions/216)\n\nBug reports and pull requests are welcome at [GitHub](https://github.com/alexb52/retest).  \n\n## 🛠️ **Development**\n\nWant to contribute to Retest? Follow these steps to set up your environment\n\n1. Clone the repo and install dependencies: `bin/setup`\n2. Run tests to ensure everything is working: `rake test`\n3. Experiment with an interactive console: `bin/console`\n4. To run integration tests (e.g., for a Hanami app): `bin/test/hanami-app`\n\n## 📜 **License**  \n\nRetest is open-source and available under the [MIT License](https://opensource.org/licenses/MIT).\n","funding_links":[],"categories":["File System Listener"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexb52%2Fretest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexb52%2Fretest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexb52%2Fretest/lists"}