Run your 1-hour test suite in 2 minutes with optimal parallelization. Starting at ~$0/hour.
Knapsack Pro wraps your current test runner(s) and works with your existing CI infrastructure to parallelize tests optimally:
Ruby (Ruby on Rails):
Knapsack Pro is designed from the ground up for CI and supports all of them.
The following CI providers are autoconfigured, but any CI server can be set up using ENV variables:
Knapsack Pro does not require you to adapt your application to parallelize tests optimally, even when you are using databases or other services.
If you can run your tests on one CI node, with Knapsack Pro, you can (almost) infinitely shorten your builds by adding more parallel CI nodes.
Knapsack Pro can parallelize tests across CI nodes by example. This is useful when you have slow test files but don’t want to manually split test examples into smaller test files.
Knapsack Pro gracefully handles preemptions when you use spot CI nodes like Google Cloud Preemptible VMs or Amazon EC2 Spot Instances: when you retry a node that was shut down the same tests are executed.
Knapsack Pro remembers what tests each CI node runs, so you can safely retry single nodes instead of re-running the entire suite.
In case of a network issue, Knapsack Pro will retry to connect with the API multiple times before switching to Fallback Mode, printing a warning, and splitting test files across CI nodes based on test file names.
Knapsack Pro collects test timing data for each CI build, so you can easily review their performance and trends over time in the Knapsack Pro dashboard.
Also, you can export the data from the Knapsack Pro API.
The Knapsack Pro add-on is shareable across Heroku apps. This can be useful, for instance, when you have staging and production Heroku apps.
The available application locations for this add-on are shown below, and depend on whether the application is deployed to a Common Runtime region or Private Space. Learn More
|Installable in Space
Need a larger plan? Let our customer success team help! Learn more.
To provision, copy the snippet into your CLI or use the install button above.