Awesome
Ruby Tests Profiling Toolbox
<img align="right" height="150" width="129" title="TestProf logo" src="./docs/assets/images/logo.svg">
TestProf is a collection of different tools to analyze your test suite performance.
Why does test suite performance matter? First of all, testing is a part of a developer's feedback loop (see @searls talk) and, secondly, it is a part of a deployment cycle.
Simply speaking, slow tests waste your time making you less productive.
TestProf toolbox aims to help you identify bottlenecks in your test suite. It contains:
-
Plug'n'Play integrations for general Ruby profilers (
ruby-prof
,stackprof
) -
Factories usage analyzers and profilers
-
ActiveSupport-backed profilers
-
RSpec and minitest helpers to write faster tests
-
RuboCop cops
-
etc.
📑 Documentation
<p align="center"> <a href="http://bit.ly/test-prof-map-v1"> <img src="./docs/assets/images/coggle.png" alt="TestProf map" width="738"> </a> </p> <p align="center"> <a href="https://evilmartians.com/?utm_source=test-prof"> <img src="https://evilmartians.com/badges/sponsored-by-evil-martians.svg" alt="Sponsored by Evil Martians" width="236" height="54"> </a> </p>Who uses TestProf
- Discourse reduced ~27% of their test suite time
- Gitlab reduced 39% of their API tests time and improved factories usage
- CodeTriage
- Dev.to
- Open Project
- ...and others
Resources
-
Paris.rb, 2018, "99 Problems of Slow Tests" talk [video, slides]
-
BalkanRuby, 2018, "Take your slow tests to the doctor" talk [video], slides]
-
RailsClub, Moscow, 2017, "Faster Tests" talk [video (RU), slides]
Installation
Add test-prof
gem to your application:
group :test do
gem "test-prof", "~> 1.0"
end
And that's it)
Supported Ruby versions:
-
Ruby (MRI) >= 2.7.0 (NOTE: for Ruby 2.2 use TestProf < 0.7.0, Ruby 2.3 use TestProf ~> 0.7.0, Ruby 2.4 use TestProf <0.12.0, Ruby 2.5-2.6 use TestProf < 1.3)
-
JRuby >= 9.3.0
Supported RSpec version (for RSpec features only): >= 3.5.0 (for older RSpec versions use TestProf < 0.8.0).
Usage
Check out our docs.
What's next
Have an idea? Propose a feature request!
Already using TestProf? Share your story!
License
The gem is available as open source under the terms of the MIT License.