mutant
Parallel Tests
Our great sponsors
mutant | Parallel Tests | |
---|---|---|
5 | 6 | |
1,925 | 3,342 | |
- | - | |
8.2 | 7.6 | |
6 days ago | 2 days ago | |
Ruby | Ruby | |
Nonstandard | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
mutant
-
An ex-Googler's guide to dev tools
There's a pretty good Ruby gem I've used for this before:
https://github.com/mbj/mutant
-
Code coverage vs mutation testing.
You should only really care about mutation testing if your code coverage is relatively high. If your code coverage is 20% then mutation testing should not be your priority. We use mutation testing (mutant for Ruby, pitest for Java). mutant is pretty hassle-free but only works when running under MRI so if you use jruby you are out of luck. pitest was far less easy to integrate.
- Mutant – Automated code reviews via mutation testing – semantic code coverage
- Automated code reviews via mutation testing - semantic code coverage.
-
Semantic blind spot in Ruby case statement
mutant shows redundant semantics, why we'd like to reduce them is perhaps better explained at https://github.com/mbj/mutant#what-is-mutant
Parallel Tests
-
Seeking help with moving a locally running, short-lived Docker container to CI / deployment process?
Thanks for that feedback. For some more context, the container is designed to run 40+ processes in parallel sending remote instructions to AWS Device Farm for testing, so I suspect that the RAM usage is expected in this case. If you have any recommendations on re-architecting the execution here I'm all ears.
- working with factory bot and active storage
- How to improve a test suit made with Rspec, Capybara, FactoryBot and Siteprism
-
Who's using Rails 7 test
I know changing from RSpec to MiniTest requires some changes on how you organize the tests and how you think about writing them, but I found that I like MiniTest better after using it for more time, I think it goes straight to the point and it's better integrated (don't quote me on this, but I think minitest handles parallel tests better than RSpec in Rails app because that feature was added with mini test in mind, you would need to add an extra gem for rspec for that https://github.com/grosser/parallel_tests)
-
How We Sped up Our CI Pipeline by Over 4x
Several members of our team worked together to get the parallel_tests gem working for our codebase. Most of our tests were fine running in parallel, but we found enough that made assumptions about the order they would be run in that we had to do some fixing and rewriting. We kept this work in a feature branch, and kept chipping away at it until all the tests would pass.
-
The Perils of Parallel Testing in Ruby on Rails
Let's get one thing out of the way. If you use RSpec rather than Minitest, you are out of luck. RSpec does not support Rails 6 built-in parallel testing. There is an ongoing discussion about changing that, but there hasn't been any significant progress for a while. If you want parallel tests with RSpec, your best bet is still using third-party gems such as grosser/parallel_tests.
What are some alternatives?
Ruby-JMeter - A Ruby based DSL for building JMeter test plans
Knapsack - Knapsack splits tests evenly across parallel CI nodes to run fast CI build and save you time.
Spring - Rails application preloader
timecop - A gem providing "time travel", "time freezing", and "time acceleration" capabilities, making it simple to test time-dependent code. It provides a unified method to mock Time.now, Date.today, and DateTime.now in a single call.
vcr - Record your test suite's HTTP interactions and replay them during future test runs for fast, deterministic, accurate tests.
rspec-side_effects - RSpec extension for checking the side effects of your specifications.
Appraisal - A Ruby library for testing your library against different versions of dependencies.
Zapata - An Automatic Automated Test Writer