🕷 zenspider.com

by ryan davis

Looking for the Ruby Quickref?

Minitest 6: Test Feistier!

Published 2018-04-24 @ 13:13

Tagged minitest

I’ve released my slides for my Rails Conf talk titled Minitest 6: Test Feistier!.

TL;DR: usability improvements, (more) parallelization and distribution are coming, but how much is still up for grabs and I’d love to talk about it and/or get help with it.

I’d love for parallel testing to become the new default, requiring opt-out rather than opt-in.

I would love to see how my tests break across the board when this is turned on. Hopefully, not much at all, and when they do it should be because of legitimate problems in my design that break thread-safety and I’m happy to find and fix those.

I’d love to see test distribution become a standard feature. Making multi-process and multi-machine testing as easy as typing rake test. I’m not sure yet how this will play out, like how it’ll be configured… but I’ve been poking at prototypes for a couple months now. I want to make using minitest on a multi-machine CI setup to be a breeze. I really want to be able to use this to get optimal test times regardless of any test bottlenecks. Current CI setups that do naive things like round-robin per-file distribution are not ideal and need to be improved.

There are still things to be figured out like “how does one debug a failed test from a distributed run?” or “what configuration assumptions are safe to make?”. But I’m sure these will work themselves out with enough discussion.

I’d love to have an even more streamlined stack and even faster tests. I’m not sure how much more I can shave off, but it’s a constant desire of mine to have minitest be the fastest test framework for ruby and to continually widen the gap.

I’d love to have bin/minitest and minitest.rake ship with minitest, improving the usability and making testing via rake an actual pleasure, rather than a PITA anytime you want to do anything different.

There’s more! Please go read the slides (I’ll post the video as soon as it is available) and let me know what you think!