{"id":13411676,"url":"https://github.com/test-prof/test-prof","last_synced_at":"2026-01-23T22:27:51.452Z","repository":{"id":38824609,"uuid":"91713426","full_name":"test-prof/test-prof","owner":"test-prof","description":"Ruby Tests Profiling Toolbox","archived":false,"fork":false,"pushed_at":"2025-05-09T17:44:47.000Z","size":19383,"stargazers_count":1919,"open_issues_count":3,"forks_count":159,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-05-14T09:03:17.906Z","etag":null,"topics":["hacktoberfest","profiling","rails","rspec","ruby","testing"],"latest_commit_sha":null,"homepage":"https://test-prof.evilmartians.io/","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/test-prof.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","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,"zenodo":null},"funding":{"github":"test-prof"}},"created_at":"2017-05-18T16:08:16.000Z","updated_at":"2025-05-13T23:02:26.000Z","dependencies_parsed_at":"2023-02-04T09:00:49.955Z","dependency_job_id":"8813a0d2-7e6a-458c-96ba-d6535c7dfef4","html_url":"https://github.com/test-prof/test-prof","commit_stats":{"total_commits":731,"total_committers":73,"mean_commits":"10.013698630136986","dds":0.2311901504787962,"last_synced_commit":"b19f5b981ff62d76cd3add01c88b1f299e7da049"},"previous_names":["palkan/test-prof"],"tags_count":69,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/test-prof%2Ftest-prof","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/test-prof%2Ftest-prof/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/test-prof%2Ftest-prof/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/test-prof%2Ftest-prof/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/test-prof","download_url":"https://codeload.github.com/test-prof/test-prof/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254110374,"owners_count":22016391,"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":["hacktoberfest","profiling","rails","rspec","ruby","testing"],"created_at":"2024-07-30T20:01:15.665Z","updated_at":"2026-01-23T22:27:51.399Z","avatar_url":"https://github.com/test-prof.png","language":"Ruby","readme":"[![Cult Of Martians](http://cultofmartians.com/assets/badges/badge.svg)](https://cultofmartians.com)\n[![Gem Version](https://badge.fury.io/rb/test-prof.svg)](https://rubygems.org/gems/test-prof) [![Build](https://github.com/test-prof/test-prof/workflows/Build/badge.svg)](https://github.com/test-prof/test-prof/actions)\n[![JRuby Build](https://github.com/test-prof/test-prof/workflows/JRuby%20Build/badge.svg)](https://github.com/test-prof/test-prof/actions)\n[![Code Triagers Badge](https://www.codetriage.com/test-prof/test-prof/badges/users.svg)](https://www.codetriage.com/test-prof/test-prof)\n[![Documentation](https://img.shields.io/badge/docs-link-brightgreen.svg)](https://test-prof.evilmartians.io)\n\n# Ruby Tests Profiling Toolbox\n\n\u003cimg align=\"right\" height=\"150\" width=\"129\"\n     title=\"TestProf logo\" src=\"./docs/assets/images/logo.svg\"\u003e\n\nTestProf is a collection of different tools to analyze your test suite performance.\n\nWhy does test suite performance matter? First of all, testing is a part of a developer's feedback loop (see [@searls](https://github.com/searls) [talk](https://vimeo.com/145917204)) and, secondly, it is a part of a deployment cycle.\n\nSimply speaking, slow tests waste your time making you less productive.\n\nTestProf toolbox aims to help you identify bottlenecks in your test suite. It contains:\n\n- Plug'n'Play integrations for general Ruby profilers ([`ruby-prof`](https://github.com/ruby-prof/ruby-prof), [`stackprof`](https://github.com/tmm1/stackprof))\n\n- Factories usage analyzers and profilers\n\n- ActiveSupport-backed profilers\n\n- RSpec and minitest [helpers](https://test-prof.evilmartians.io/#/?id=recipes) to write faster tests\n\n- RuboCop cops\n\n- etc.\n\n📑 [Documentation](https://test-prof.evilmartians.io)\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"http://bit.ly/test-prof-map-v1\"\u003e\n    \u003cimg src=\"./docs/assets/images/coggle.png\" alt=\"TestProf map\" width=\"738\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://evilmartians.com/?utm_source=test-prof\"\u003e\n    \u003cimg src=\"https://evilmartians.com/badges/sponsored-by-evil-martians.svg\"\n         alt=\"Sponsored by Evil Martians\" width=\"236\" height=\"54\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## Who uses TestProf\n\n- [Discourse](https://github.com/discourse/discourse) reduced [~27% of their test suite time](https://twitter.com/samsaffron/status/1125602558024699904)\n- [Gitlab](https://gitlab.com/gitlab-org/gitlab-ce) reduced [39% of their API tests time](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14370) and [improved factories usage](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/26810)\n- [CodeTriage](https://github.com/codetriage/codetriage)\n- [Dev.to](https://github.com/thepracticaldev/dev.to)\n- [Open Project](https://github.com/opf/openproject)\n- [...and others](https://github.com/test-prof/test-prof/issues/73)\n\n## Resources\n\n- [TestProf: a good doctor for slow Ruby tests](https://evilmartians.com/chronicles/testprof-a-good-doctor-for-slow-ruby-tests)\n\n- [TestProf II: Factory therapy for your Ruby tests](https://evilmartians.com/chronicles/testprof-2-factory-therapy-for-your-ruby-tests-rspec-minitest)\n\n- Paris.rb, 2018, \"99 Problems of Slow Tests\" talk [[video](https://www.youtube.com/watch?v=eDMZS_fkRtk), [slides](https://speakerdeck.com/palkan/paris-dot-rb-2018-99-problems-of-slow-tests)]\n\n- BalkanRuby, 2018, \"Take your slow tests to the doctor\" talk [[video](https://www.youtube.com/watch?v=rOcrme82vC8)], [slides](https://speakerdeck.com/palkan/balkanruby-2018-take-your-slow-tests-to-the-doctor)]\n\n- RailsClub, Moscow, 2017, \"Faster Tests\" talk [[video](https://www.youtube.com/watch?v=8S7oHjEiVzs) (RU), [slides](https://speakerdeck.com/palkan/railsclub-moscow-2017-faster-tests)]\n\n- RubyConfBy, 2017, \"Run Test Run\" talk [[video](https://www.youtube.com/watch?v=q52n4p0wkIs), [slides](https://speakerdeck.com/palkan/rubyconfby-minsk-2017-run-test-run)]\n\n- [Tips to improve speed of your test suite](https://medium.com/appaloosa-store-engineering/tips-to-improve-speed-of-your-test-suite-8418b485205c) by [Benoit Tigeot](https://github.com/benoittgt)\n\n## Installation\n\nAdd `test-prof` gem to your application:\n\n```ruby\ngroup :test do\n  gem \"test-prof\", \"~\u003e 1.0\"\nend\n```\n\nAnd that's it)\n\nSupported Ruby versions:\n\n- Ruby (MRI) \u003e= 2.7.0 (**NOTE:** for Ruby 2.2 use TestProf \u003c 0.7.0, Ruby 2.3 use TestProf ~\u003e 0.7.0, Ruby 2.4 use TestProf \u003c0.12.0, Ruby 2.5-2.6 use TestProf \u003c 1.3)\n\n- JRuby \u003e= 9.3.0\n\nSupported RSpec version (for RSpec features only): \u003e= 3.5.0 (for older RSpec versions use TestProf \u003c 0.8.0).\n\n## Usage\n\nCheck out our [docs][].\n\n## What's next\n\nHave an idea? [Propose](https://github.com/test-prof/test-prof/issues/new) a feature request!\n\nAlready using TestProf? [Share your story!](https://github.com/test-prof/test-prof/issues/73)\n\n## License\n\nThe gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).\n\n[docs]: https://test-prof.evilmartians.io\n","funding_links":["https://github.com/sponsors/test-prof"],"categories":["Ruby","\u003e 1k ★","Tools"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftest-prof%2Ftest-prof","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftest-prof%2Ftest-prof","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftest-prof%2Ftest-prof/lists"}