Knapsack Pro

Ruby: knapsack_pro,
JavaScript: @knapsack-pro/cypress


Only Ruby: open source gem

Queue mode - dynamic tests allocation across CI nodes (video)

Autobalance tests to get optimal test suite split betweeen CI nodes.
It is designed for tests with random time execution and overloaded CI nodes with random performance. (how it works & how to enable)

Regular mode - test suite split based on time execution (video)

It generates subset of test suite per CI node before running tests.

Automated tests time execution recording

Test suite split based on most up to date tests time execution data

Support for short-lived CI nodes

Knapsack Pro is fault-tolerant and can withstand possible CI instance preemptions (shut down) when you use highly affordable CI nodes like Google Cloud Preemptible VMs or Amazon EC2 Spot Instances. See how to enable it in Queue Mode. It's enabled in Regular Mode.

More optimal test suite split for newly created branches

Smart test suite split when tests time execution data are not available

Build metrics to detect bottlenecks

How to export test suite timing data from Knapsack Pro API

Export historical metrics about CI builds

How to export test suite timing data from Knapsack Pro API

Track test suite split for git commit hash
Track test suite split for branch name
Track test suite split for CI node total number
Retry failed CI node with the same subset of tests (see)
Run tests for particular CI node in your development environment (see)


HTTPS connection to Knapsack Pro API
Test file names encryption before send data to Knapsack Pro API (how to enable)
Fallback mode - run tests always even in case of connection problems with Knapsack Pro API (see)

Ruby test runners support


JavaScript test runners support

Cypress.io (see @knapsack-pro/cypress client)

Other languages testing tools

Do you use different programming language or test runner? Let us know in the poll

CI support build into the gem

Heroku CI
Solano CI
Gitlab CI
Jenkins (example of set up)
Can work with other CI server

How Knapsack Pro makes my life easier as opposed to regular knapsack gem?