Yath (AKA Test2::Harness)
Presented by: Chad 'Exodist' Granum
You can follow along at https://test-more.github.io/Test2-Harness
What is yath?
Test2::Harness (cli: yath) is a new test harness intended as an alternative to Test::Harness (cli: prove).
yath introduces new features and a new approach to running your tests.
yath is most useful with large test suites and business/corperate test
suites, specially ones with long run times.
What are the benfits
Please note, yath is still experimental, and some areas are still under development and expected to change
- Preload allows you to run your suite significantly faster
- The event log lets you inspect all the detail of a test run after the fact
- Better output for humans
- New features (like timeouts!)
- Under active development (unlike prove which is mostly just bugfixes at this point)
At ZipRecruiter the test suite takes over 4 hours to run when using
prove with -j1. -j2+ is not possible due to multiple factors that would
require an additional layer to prevent conflicts.
Using yath we can run the test suite in 1.5 hours on the same box using
a combination of preload and -j3 allowing yath to manage test order and
handle the conflicts.
Whe are able to further improve this by using a beefy test box with
-j50 so that the entire thing runs in 15 minutes or less.
yath helps us at cPanel reduce our test suite runtime from ~60 minutes
to ~12 minutes with a very low effort after a few days of tagging